Materi
Halaman Writing better Gherkin meminta skenario menggambarkan perilaku sistem, bukan implementasinya: apa, bukan bagaimana. “When Bob masuk” adalah kebutuhan fungsional; deretan langkah membuka /login, mengetik nama, mengetik kata sandi, dan menekan tombol adalah rujukan prosedur. Pertanyaan ujinya: apakah kalimat ini harus berubah bila implementasinya berubah? Bila ya, tulis ulang tanpa rincian implementasi. Gaya imperatif terikat pada antarmuka yang sekarang, sehingga perlu diperbarui setiap kali antarmuka berubah. Referensi Gherkin memberi cara memeriksanya: bayangkan tahun 1922, sebelum ada komputer; detail implementasi disimpan di step definition.
Given yang sama di semua skenario sebuah Feature menandakan langkah itu bukan inti skenario. Langkah itu dipindah ke Background, yang dijalankan sebelum setiap skenario. Satu Feature atau satu Rule hanya boleh punya satu Background, dan referensi menyarankan Background tidak lebih dari 4 baris.
Saat mencari step definition, Cucumber tidak memperhitungkan kata kunci. Akibatnya “Given ada uang di rekening” dan “Then ada uang di rekening” dianggap kembar. Jalan keluarnya bahasa domain yang lebih jelas:
Given saldo rekening Dewi Rp430.000
Then saldo rekening Dewi harus Rp430.000