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.

  • ๐Ÿ”˜ Dua berkas: Berkas fitur menyatakan apa yang seharusnya terjadi; berkas definisi langkah menyatakan bagaimana otomatisasi mewujudkannya.
  • โ˜‘๏ธ Kata kunci Gherkin: Fitur, Skenario, Diberikan, Kapan, dan Kemudian memberikan struktur dan bentuk yang mudah dibaca pada sebuah skenario.
  • โœ… Tidak ada titik dua pada langkah-langkahnya: Feature dan Scenario menggunakan tanda titik dua, tetapi Given, When dan Then tidak boleh, atau langkah tersebut akan diabaikan.
  • ๐Ÿงช Kumpulan data: Garis Besar Skenario ditambah tabel Contoh memutar ulang satu skenario terhadap banyak baris input.
  • ๏ธ Pengaturan bersama: Latar belakang mengambil langkah-langkah yang diberikan secara berulang dari setiap skenario dalam suatu fitur.
  • ๐Ÿ“Š Sesuai: Cucumber Mengabaikan kata kunci saat melakukan pencocokan, sehingga dua langkah mungkin tidak akan pernah memiliki teks yang sama.

Cucumber File fitur dan definisi langkah dijelaskan dengan contoh.

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.

Animasi dari sebuah Cucumber berkas fitur dijalankan dengan setiap langkah Gherkin yang dilaporkan secara berurutan.

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.

Pertanyaan Umum Demo Slot

Tidak. Sebuah file .feature hanya dapat mendeklarasikan satu Fitur, meskipun dapat memuat skenario sebanyak yang Anda inginkan. Jika Anda membutuhkan fitur kedua, buat file kedua โ€” batasan itulah yang membuat folder tetap mudah dinavigasi seiring bertambahnya ukuran suite.

Tidak. Gherkin telah dilokalisasi ke lebih dari tujuh puluh bahasa lisan. Menambahkan header bahasa pada baris pertama file akan mengubah kata kunci, sehingga tim dapat menulis skenario dalam bahasa yang sama dengan yang digunakan oleh para ahli di bidangnya.

Ini berisi semua hal yang bukan definisi langkah: pengaturan lingkungan, konfigurasi peramban, kait yang berjalan sebelum atau sesudah skenario, dan kode pembantu bersama. Keeping Ini memisahkan penghentian langkah-langkah file definisi agar tidak berubah menjadi file yang tidak berguna.ping tanah.

Cucumber Laporan langkah tersebut menyatakan tidak terdefinisi alih-alih gagal, dan mencetak cuplikan kode yang disarankan yang dapat Anda tempelkan ke dalam file definisi langkah. Skenario tersebut ditandai sebagai tidak lulus, sehingga langkah yang tidak terdefinisi tidak pernah secara diam-diam dihitung sebagai keberhasilan.

Sebuah tag yang ditempatkan di atas Fitur atau Skenario memungkinkan pelaksana untuk memilih subset pada saat eksekusi, terlepas dari struktur folder. Tim biasanya memberi tag pada satu set pengujian awal (smoke set), satu set pengujian lambat (slow set), dan satu set pengujian yang sedang dikerjakan (work-in-progress set), kemudian hanya menjalankan apa yang dibutuhkan oleh tahapan pipeline tertentu.

Model bahasa besar menyusun Gherkin dari kriteria penerimaan yang baik, dan menghasilkan kerangka definisi yang sesuai dengan lebih cepat lagi. RevLihat output untuk teks langkah yang duplikat dan untuk skenario yang membocorkan detail implementasi, di mana Gherkin yang dihasilkan biasanya salah.

Sangat. Dengan diberikan file fitur terbuka, Copilot menyimpulkan ekspresi reguler dan tanda tangan metode untuk langkah yang tidak terdefinisi dan mengisi bagian isi dari kode di sekitarnya. Anggap saja ini sebagai draf pertama; pernyataan yang diajukannya masih perlu diperiksa oleh manusia.

Ya, dan itulah inti dari desainnya. Definisi berada dalam folder bersama dan dicocokkan berdasarkan teks, bukan berdasarkan file, sehingga langkah login yang ditulis sekali dapat digunakan kembali oleh setiap fitur yang membutuhkannya. Penggunaan kembali inilah mengapa teks langkah yang duplikat dilarang.

Ringkaslah postingan ini dengan: