Cucumber-js: Garis Besar Skenario dengan Beberapa Contoh

Dibuat pada 6 Jun 2018  ·  16Komentar  ·  Sumber: cucumber/cucumber-js

Hai,
pertama-tama, terima kasih banyak untuk memiliki implementasi JS Gherkin ini.

Masalah saya:
Saya memiliki Garis Besar Skenario dengan beberapa Contoh. Skenario ini berisi langkah-langkah untuk mendapatkan titik akhir dengan beberapa url dan saya ingin memiliki Contoh lain dalam Garis Besar Skenario ini dengan parameter url.
Lalu saya ingin menjalankan skenario sesuai dengan Contoh pertama dikalikan dengan Contoh lain. Jadi jika Contoh pertama memiliki misal 4 baris dan kedua 4 baris = 4 x 4 = 16 run.

Pada dasarnya sama dengan
https://github.com/Behat/Behat/issues/1082

Komentar yang paling membantu

https://github.com/Behat/Behat/issues/1082 adalah bahwa hanya tabel contoh terakhir yang dieksekusi. Saya menganggap itu terpisah dari mengalikan tabel contoh.

Mengisi contoh. Apakah Anda meminta hal-hal berikut:

Scenario Outline:
  Given <a> and <b>

  Examples:
    | a  |
    | a1 |
    | a2 |
    | a3 |
    | a4 |

  Examples:
    | b  |
    | b1 |
    | b2 |
    | b3 |
    | b4 |

Dimana menjalankan 16 skenario dengan kombinasi a1/b1, a1/b2, a1/b3, a1/b4, a2/b1, dll. Itu kami untuk mendukung hal seperti itu saya pikir kami membutuhkan kata kunci yang berbeda daripada kelebihan beban Contoh sebagai pengaturan ini saat ini menjadi 8 skenario di mana dalam 4 b pertama tidak ditentukan dan dalam 4 kedua a tidak ditentukan.

Semua 16 komentar

Saya terkejut ini belum berhasil. Itu pasti di Java dan Ruby....

Saya setuju itu harus diterapkan.

https://github.com/Behat/Behat/issues/1082 adalah bahwa hanya tabel contoh terakhir yang dieksekusi. Saya menganggap itu terpisah dari mengalikan tabel contoh.

Mengisi contoh. Apakah Anda meminta hal-hal berikut:

Scenario Outline:
  Given <a> and <b>

  Examples:
    | a  |
    | a1 |
    | a2 |
    | a3 |
    | a4 |

  Examples:
    | b  |
    | b1 |
    | b2 |
    | b3 |
    | b4 |

Dimana menjalankan 16 skenario dengan kombinasi a1/b1, a1/b2, a1/b3, a1/b4, a2/b1, dll. Itu kami untuk mendukung hal seperti itu saya pikir kami membutuhkan kata kunci yang berbeda daripada kelebihan beban Contoh sebagai pengaturan ini saat ini menjadi 8 skenario di mana dalam 4 b pertama tidak ditentukan dan dalam 4 kedua a tidak ditentukan.

@aslakhellesoy mengalikan contoh tabel yang berfungsi di java/ruby? Cucucmber-js menangani beberapa tabel contoh dengan benar untuk satu kerangka skenario.

Dari apa yang saya ambil dari tiket Behat, apa yang ingin mereka capai di sana bukanlah mengalikan tabel, melainkan mengelompokkan contoh berdasarkan apa yang mereka ungkapkan:

    Examples: of ordinary Latin character inputs
      | input |
      | a     |
      | z     |
      | 0     |

    Examples: of Unicode inputs
      | input  |
      | U+0046 |
      | U+0058 |

    Examples: of invalid inputs
      | input  |
      | <      |
      | </     |

Alih-alih menggabungkan:

    Examples: Usernames
         | username   |
         | admin      |
         | user       |
         | maintainer |
         | moderator  |

    Examples: Passwords
         | password |
         | valid    |
         | invalid  |

Saya mungkin salah meskipun

Saya salah membaca tabel Contoh "banyak", yang berfungsi. Mengalikan tabel contoh (perkalian matriks?) tidak berfungsi. Saya pikir itu akan agak sulit dipahami orang.

Sudahkah Anda mempertimbangkan berpasangan untuk menghasilkan tabel yang lebih kecil?

Maaf menyesatkan Anda dengan memposting tiket Behat. Saya membutuhkan apa yang ditulis charlierudolph, bahkan dengan kata kunci yang berbeda.

Terima kasih.

@znevrly Saya setuju mengalikan semuanya akan membingungkan ketika diletakkan pada contoh saat ini. Saya pikir berpasangan adalah solusi ideal karena Anda dapat mempersempit ke serangkaian kasus uji yang representatif. @aslakhellesoy apakah menurut Anda kami ingin membangun sesuatu seperti berpasangan menjadi gherkin? (jika kita dapat menentukan antarmuka yang bagus)

Saya tidak berpikir kita harus membangun berpasangan ke Gherkin - itu akan menjadi fitur creep. Saya pikir lebih baik menggunakan alat mandiri untuk menghasilkan tabel, lalu menempelkannya ke file fitur.

Itu tidak terdengar sangat nyaman. Ada ide? :)

Ada ide tentang apa?

Untuk memiliki beberapa kata kunci untuk mencapai perilaku yang dijelaskan (menggandakan tabel contoh atau perkalian matriks) tanpa perlu membuat tabel secara manual.

Apakah Anda menyadari bahwa Anda hanya perlu menjalankan alat berpasangan sekali untuk menghasilkan tabel untuk ditempelkan ke dalam kerangka skenario? Saya tidak yakin apa yang membuat Anda tidak nyaman tentang itu.

Tetapi saya memiliki lusinan file fitur dengan banyak skenario. Dalam kasus tabel Contoh "kedua" hanya akan banyak copy paste dan sangat jelas kapan selesai atau tidak. Dan jika akan ada baris tambahan di tabel Contoh "kedua", saya tidak perlu membuat ulang semua tabel yang digabungkan.

Terlebih lagi dengan tabel yang dihasilkan tidak terlalu jelas apakah ada semua kemungkinan kombinasi atau tidak. :(

Kami dapat menambahkan API pra-prosesor Gherkin di beberapa titik. Ketika kami melakukannya, saya pikir fungsionalitas yang Anda minta harus diimplementasikan menggunakan API itu. Ini bukan prioritas saat ini, jadi jika ini mendesak bagi Anda, saya sarankan Anda membuat file Gherkin sendiri.

bagaimana saya akan menggunakan ini dalam contoh - Email harus dalam format "first_name. [email protected] "

Apakah mungkin untuk Memilih hanya satu skenario dari tabel Contoh? katakanlah saya punya

A| B | C|
| Paket | 'HD' | 'SHP' |
| PZ | 'HD' | 'SHP' |

Jika dari satu file fitur (katakanlah helloWorld.feature) saya memanggil file fitur lain (Print.feature) yang memiliki garis besar skenario dengan tabel di atas, apakah mungkin untuk memilih skenario untuk dijalankan dari file fitur pertama?

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

stefdelec picture stefdelec  ·  6Komentar

lamartire picture lamartire  ·  6Komentar

jan-molak picture jan-molak  ·  4Komentar

jfstephe picture jfstephe  ·  4Komentar

NoNameProvided picture NoNameProvided  ·  5Komentar