Apa itu Cucumber File Fitur & Definisi Langkah? (Contoh)
โก Ringkasan Cerdas
Cucumber File fitur menjelaskan perilaku dalam bahasa Gherkin yang sederhana, sementara definisi langkah berisi kode yang menjalankan setiap baris. Setiap Cucumber Proyek membutuhkan keduanya, yang disimpan dalam tata letak folder tetap di bawah direktori fitur.
Untuk setiap proyek Cucumber, terdapat satu direktori tunggal di akar proyek yang bernama "features". Di sinilah semua fitur Cucumber Anda akan berada. Di dalam direktori ini Anda akan menemukan direktori tambahan, yaitu direktori step_definition dan support.
Tata letak itu penting, karena Cucumber Program ini menemukan file Anda berdasarkan konvensi, bukan berdasarkan konfigurasi. File fitur yang berada di luar direktori fitur tidak akan pernah dibaca.
Apa itu "File Fitur"?
File fitur berisi deskripsi tingkat tinggi tentang Skenario Uji Dalam bahasa sederhana, ini dikenal sebagai... KetimunGherkin adalah bahasa teks bahasa Inggris sederhana.
Cucumber Berkas Fitur terdiri dari komponen-komponen berikut โ
- Fitur: Sebuah fitur akan menjelaskan skrip pengujian saat ini yang harus dijalankan.
- Contoh: Skenario menjelaskan langkah-langkah dan hasil yang diharapkan untuk kasus uji tertentu.
- Garis Besar Skenario: Skenario yang sama dapat dijalankan untuk beberapa kumpulan data menggunakan kerangka skenario. Data disediakan oleh struktur tabel yang dipisahkan oleh (II).
- Mengingat: Ini menentukan konteks teks yang akan dieksekusi. Dengan menggunakan tabel data โDiberikanโ, langkah juga dapat diparameterisasi.
- KetikaโWhenโ menentukan tindakan pengujian yang harus dilakukan.
- KemudianHasil yang diharapkan dari tes tersebut dapat diwakili oleh "Kemudian".
Satu berkas berisi satu Fitur. Skenario di bawahnya adalah contoh konkret yang mengilustrasikan fitur tersebut, dan setiap skenario mengikuti ritme yang sama: menjelaskan konteks awal, menjelaskan suatu peristiwa, menjelaskan hasil yang diharapkan.
Selanjutnya, kita akan belajar cara menulis Feature File di Cucumber dengan contoh.
Contoh File Fitur Contoh:
Contoh asli yang dipublikasikan bersama tutorial ini direproduksi di bawah ini persis seperti yang tertulis.
Feature: Visit career guide page in career.guru99.com Scenario: Visit career.guru99.com Given: I am on career.guru99.com When: I click on career guide menu Then: I should see career guide page
โ ๏ธ Koreksi: Contoh di atas menempatkan titik dua setelahnya Mengingat, Ketika ke KemudianGherkin menambahkan titik dua setelahnya. Fitur ke Contoh hanya itu. Kata kunci "step" yang diikuti oleh titik dua tidak diuraikan sebagai langkah, jadi Cucumber Mengabaikan baris tersebut secara diam-diam. File yang telah diperbaiki berbunyi sebagai berikut.
Feature: Visit career guide page in career.guru99.com Scenario: Visit career.guru99.com Given I am on career.guru99.com When I click on career guide menu Then I should see career guide page
Indentasi tidak diperlukan oleh parser, tetapi dua spasi per level adalah gaya konvensional dan membuat fitur yang panjang jauh lebih mudah dipindai. Animasi di bawah ini menunjukkan file fitur yang dijalankan dan setiap langkah berubah menjadi hijau saat berhasil.
Apa itu โDefinisi Langkahโ?
Definisi langkah memetakan Langkah Kasus Uji dalam file fitur (diperkenalkan oleh Diberikan/Kapan/Kemudian) ke kode. Ini yang menjalankan langkah-langkah pada Aplikasi yang Sedang Diuji dan memeriksa hasilnya terhadap hasil yang diharapkan. Agar definisi langkah dapat dieksekusi, definisi langkah tersebut harus cocok dengan komponen tertentu dalam suatu fitur. Definisi langkah didefinisikan dalam file Ruby di bawah โfeatures/step_definitions/*_steps.rbโ.
Pencocokan dilakukan hanya berdasarkan teks langkahnya saja. Cucumber tidak memperhitungkan kata kunci saat mencari definisi, itulah sebabnya dua langkah dalam rangkaian yang sama mungkin tidak pernah memiliki teks yang identik meskipun satu adalah Given dan yang lainnya adalah Then.
Contoh untuk Definisi Langkah: Di sini kita akan menggunakan di atas Cucumber Contoh File Fitur untuk menjelajahi career.guru99.com. Kita akan menggunakan fitur seperti โWhen, Then, Givenโ seperti yang ditunjukkan di bawah ini. Cucumber Contoh File Fitur.
Step 1: Given (/^ I am on career.guru99.com$/) do Browser.goto "http://career.guru99.com" -This will visit career.guru99 on browser end Step 2: When (/^ click on career guide menu$/) do Browser.text (:name, " career guide" ).click โ This will click "career guide menu" end Step 3: Then (/^ I should see career guide page$/) do Browser.goto "http://career.guru99.com/category/career-guide/" - It will visit "career guide page" end
โ ๏ธ Catatan tentang bahasa: Definisi di atas adalah Ruby, yang merupakan tempat Cucumber dimulai dan itulah mengapa folder tersebut diberi nama step_definitions dan berkas-berkas tersebut berakhiran dengan _steps.rbFile fitur yang sama menggerakkan definisi langkah yang ditulis dalam Java, JavaNaskah, Python atau C# tanpa perubahan sedikit pun pada Gherkin. Di Cucumber-JVM, ekspresi reguler dipindahkan ke dalam anotasi pada sebuah metode:
@Given("I am on career.guru99.com") public void i_am_on_the_career_page() { driver.get("http://career.guru99.com"); }
Bahasa pemrograman apa pun yang Anda pilih, definisi langkah adalah satu-satunya tempat detail implementasi seharusnya berada. Keeping Selektor dan panggilan HTTP dari file fitur inilah yang memungkinkan orang yang bukan programmer untuk membaca skenario tersebut. pertama Cucumber naskah Panduan langkah demi langkah ini membangun pasangan ini dari awal hingga akhir.
Garis Besar Skenario dan Contoh dalam File Fitur
Menyalin skenario tiga kali untuk mengubah satu nilai adalah cara paling umum file fitur menjadi tidak terbaca. Garis Besar Skenario mengganti salinan dengan templat, dan sebuah contoh Tabel tersebut menyediakan nilai-nilainya.
Parameter ditulis di dalam tanda kurung sudut dan harus sesuai dengan judul kolom pada tabel di bawahnya. Cucumber Sistem ini mengganti nilai sebelum mencari definisi langkah yang cocok, sehingga definisi itu sendiri tidak memerlukan penanganan khusus.
Scenario Outline: Search the career guide Given I am on career.guru99.com When I search for "<keyword>" Then I should see the <section> section Examples: | keyword | section | | interview | Interview Tips| | resume | Resume Guide |
Ada beberapa poin penting yang perlu diingat saat menggunakan kerangka tulisan:
- Kerangka kerja dijalankan sekali untuk setiap baris data. Baris pertama adalah header dan tidak pernah dieksekusi.
- Garis Besar Skenario harus diikuti oleh setidaknya satu bagian Contoh, jika tidak, tidak ada yang akan berjalan.
- Garis vertikal pada tabel tidak perlu sejajar, meskipun menyelaraskannya akan membuat file tetap mudah dibaca.
- Jaga agar tabel tetap kecil. Tabel dengan tiga puluh baris biasanya merupakan tanda bahwa data tersebut seharusnya berada di tempat yang lebih kecil. tes berbasis data sebagai gantinya.
Latar Belakang, Dan, Tetapi, dan Kata Kunci Gherkin Lainnya
Selain enam komponen yang disebutkan sebelumnya, Gherkin memiliki sejumlah kata kunci yang membuat file fitur yang lebih panjang tetap mudah dibaca.
- Latar Belakang โ sebuah blok langkah Given yang dijalankan sebelum setiap skenario dalam fitur tersebut. Ini menghilangkan pengulangan penulisan prasyarat yang sama di bagian atas setiap skenario.
- Dan ke Tapi โ pengganti untuk Given, When, atau Then yang berulang. Kata-kata ini lebih mudah dibaca dan berperilaku identik; Cucumber cocok dengan teks langkahnya, baik dengan cara apa pun.
- Aturan โ grup opsionalping, ditambahkan dalam Gherkin 6, yang mengumpulkan skenario yang menggambarkan satu aturan bisnis.
- Teks Dokumen โ sebuah blok teks yang dibatasi oleh tiga tanda kutip ganda, yang diteruskan ke definisi langkah sebagai argumen tunggal ketika satu baris tidak cukup.
- Tabel Data โ Baris yang dipisahkan oleh tanda pipa (|) yang terlampir pada satu langkah, digunakan untuk memberikan daftar nilai ke langkah tersebut.
- Tags โ label yang diawali dengan tanda @, ditempatkan di atas Fitur atau Skenario sehingga sebagian dapat dipilih saat dijalankan.
- komentar โ baris yang diawali dengan tanda pagar (#). Komentar hanya diperbolehkan di awal baris, dan Gherkin tidak memiliki komentar blok.
Jika digabungkan, sebuah file fitur dengan pengaturan bersama akan terlihat seperti ini:
Feature: Career guide navigation Background: Given I am on career.guru99.com Scenario: Open the career guide menu Given I am signed in And my profile is complete When I click on career guide menu Then I should see career guide page But I should not see the admin panel
Kesalahan Umum pada File Fitur dan Cara Memperbaikinya
jembatan Cucumber Masalah yang dilaporkan oleh pemula bukanlah kesalahan kerangka kerja. Itu adalah pelanggaran kecil terhadap aturan Gherkin yang gagal tanpa menimbulkan kesalahan.
| Kesalahan | Apa yang terjadi | Memperbaiki |
|---|---|---|
| Titik dua setelah Given, When atau Then | Baris tersebut tidak dikenali sebagai langkah dan dilewati. | Gunakan titik dua setelah Feature dan Scenario saja. |
| Dua langkah dengan teks identik | Cucumber memperlakukannya sebagai duplikat karena kata kunci diabaikan. | Ubah susunan kalimat pada satu langkah agar keduanya terbaca berbeda. |
| Berkas fitur di luar direktori fitur. | File tersebut tidak pernah ditemukan dan tidak ada pengujian yang dijalankan. | Pertahankan setiap .feature berkas di dalam folder fitur |
| Lima belas langkah dalam satu skenario | Skenario tersebut berhenti berfungsi sebagai dokumentasi. | Usahakan tiga hingga lima langkah dan berikan detail pada definisi setiap langkah. |
| Kemudian melakukan penegasan pada baris basis data. | Pengujian berhasil meskipun perilaku yang terlihat oleh pengguna rusak. | Lakukan pengecekan pada output yang dapat diamati seperti halaman atau respons. |
| Garis Besar Skenario tanpa Tabel Contoh | Templat tersebut tidak pernah dieksekusi. | Tambahkan bagian Contoh tepat di bawah kerangka. |
Memperbaiki hal-hal ini sebelum rangkaian fitur berkembang jauh lebih murah daripada memperbaikinya setelahnya, karena setiap skenario yang ditulis sementara itu akan memiliki bentuk yang sama. Setelah file fitur berfungsi dengan baik, langkah selanjutnya adalah menghubungkan proyek โ lihat Cucumber instalasi panduan dan cakupan yang lebih luas pengujian otomasi series.

