Bahasa Gherkin: Format, Sintaks & Tes Gherkin di Cucumber
Apa itu Bahasa Gherkin?
Ketimun adalah bahasa yang dapat dibaca oleh bisnis yang membantu Anda menjelaskan perilaku bisnis tanpa harus membahas detail implementasi. Ini adalah bahasa domain spesifik untuk mendefinisikan pengujian dalam Cucumber Format untuk spesifikasi. Format ini menggunakan bahasa yang mudah dipahami untuk menjelaskan kasus penggunaan dan memungkinkan pengguna untuk menghapus detail logika dari pengujian perilaku.
Teks dalam bahasa Gherkin bertindak sebagai dokumentasi dan kerangka pengujian otomatis Anda. Format Gherkin didasarkan pada Tata Bahasa TreeTop yang tersedia dalam 37+ bahasa. Oleh karena itu, Anda dapat menulis ketimun dalam 37+ bahasa lisan.
Skrip ini memiliki dua tujuan utama:
- Dokumentasikan skenario pengguna
- Menulis tes otomatis (BDD)
Mengapa ketimun?
Kebutuhan akan Gherkin dapat dengan mudah dijelaskan dengan gambar berikut
Sebelum ketimun
Setelah ketimun
Sintaks Gherkin
Gherkin adalah bahasa berorientasi garis seperti YAML dan Python. Setiap baris disebut langkah dan dimulai dengan kata kunci dan akhir terminal dengan berhenti. Tab atau spasi digunakan untuk lekukan.
Dalam skrip ini, komentar dapat ditambahkan di mana pun Anda inginkan, namun harus dimulai dengan tanda #. Itu membaca setiap baris setelah menghapus kata kunci Ghrekin seperti yang diberikan, kapan, lalu, dll.
Seperti apa langkah-langkah khas Gherkin
Gherkin Scripts: menghubungkan konsep manusia tentang sebab dan akibat dengan konsep perangkat lunak tentang input/proses/output.
Sintaks Gherkin
Feature: Title of the Scenario Given [Preconditions or Initial Context] When [Event or Trigger] Then [Expected output]
Dokumen Gherkin memiliki ekstensi .feature dan hanya berupa file uji dengan ekstensi mewah. Cucumber membaca dokumen Gherkin dan menjalankan pengujian untuk memvalidasi bahwa perangkat lunak berperilaku sesuai sintaks Gherkin.
Istilah Penting yang digunakan dalam Gherkin
- Fitur
- Latar Belakang
- Contoh
- Mengingat
- Ketika
- Kemudian
- Dan
- Tapi
- Contoh Garis Besar Skenario
Konvensi penamaan digunakan untuk nama fitur. Namun, tidak ada aturan pasti di dalamnya Cucumber tentang nama.
Fitur
File tersebut harus memiliki ekstensi .feature dan setiap file fitur hanya boleh memiliki satu fitur. Kata kunci fiturnya ada pada Fitur: dan setelah itu ditambahkan spasi dan nama fiturnya.
Contoh
Setiap file fitur mungkin memiliki beberapa skenario, dan setiap skenario dimulai dengan Skenario: diikuti dengan nama skenario.
Latar Belakang
Kata kunci latar belakang membantu Anda menambahkan konteks pada skenario. Ini dapat berisi beberapa langkah skenario, namun satu-satunya perbedaan adalah bahwa ini harus dijalankan sebelum setiap skenario.
Mengingat
Penggunaan kata kunci Diberikan adalah untuk menempatkan sistem dalam keadaan familiar sebelum pengguna mulai berinteraksi dengan sistem. Namun, Anda dapat menghilangkan penulisan interaksi pengguna pada langkah Diberikan jika Diberikan pada langkah “Prakondisi”.
sintaks:
Given
Given - a test step that defines the 'context Given I am on "/."
Ketika
Saat langkahnya adalah menentukan tindakan yang dilakukan oleh pengguna.
sintaks:
When
A When - a test step that defines the 'action' performed When I perform "Sign In."
Kemudian
Penggunaan kata kunci 'lalu' adalah untuk melihat hasil bisni setelah tindakan di langkah kapan. Namun, Anda hanya dapat memverifikasi perubahan nyata.
sintaks:
Then
Then - test step that defines the 'outcome.' Then I should see "Welcome Tom."
Dan & Tapi
Anda mungkin mendapatkan beberapa informasi kapan atau Kemudian.
sintaks:
But
A But - additional test step which defines the 'action' 'outcome.' But I should see "Welcome Tom."
And - additional test step that defines the 'action' performed And I write "EmailAddress" with "Tomjohn@gmail.com."
Diberikan, Kapan, Lalu, dan, tetapi merupakan langkah pengujian. Anda dapat menggunakannya secara bergantian. Penerjemah tidak menampilkan kesalahan apa pun. Namun, mereka pasti tidak akan 'masuk akal' ketika dibaca.
Given The login page is opening When I input username, password and click the Login button Then I am on the Homepage
Contoh Gherkin
Contoh 1:
Feature: Login functionality of social networking site Facebook. Given: I am a facebook user. When: I enter username as username. And I enter the password as the password Then I should be redirected to the home page of facebook
Skenario yang disebutkan di atas adalah fitur yang disebut login pengguna.
Gherkin akan menganalisis setiap langkah yang tertulis dalam file definisi langkah. Oleh karena itu, langkah-langkah diberikan dalam file fitur dan file definisi langkah harus cocok.
Contoh 2:
Feature: User Authentication Background: Given the user is already registered to the website Scenario: Given the user is on the login page When the user inputs the correct email address And the user inputs the correct password And the user clicks the Login button Then the user should be authenticated And the user should be redirected to their dashboard And the user should be presented with a success message
Praktik terbaik menggunakan Gherkin
- Setiap skenario harus dijalankan secara terpisah
- Setiap fitur harus dapat dijalankan bersama
- Informasi langkah-langkah harus ditampilkan secara independen
- Hubungkan Skenario Anda dengan kebutuhan Anda
- Pantau secara lengkap skenario apa yang harus disertakan dalam dokumen persyaratan
- Buat langkah-langkah modular dan mudah dipahami
- Cobalah untuk menggabungkan semua skenario umum Anda
Keunggulan ketimun
- Gherkin cukup sederhana untuk dipahami oleh non-programmer
- Pemrogram dapat menggunakannya sebagai dasar yang kuat untuk memulai pengujian mereka
- Itu membuat Kisah Pengguna lebih mudah dicerna
- Skrip ketimun dapat dengan mudah dipahami oleh para eksekutif bisnis dan pengembang
- Gherkin Testing menargetkan kebutuhan bisnis
- Sebagian besar spesifikasi fungsional ditulis sebagai cerita pengguna
- Anda tidak perlu menjadi ahli untuk memahami kumpulan perintah kecil Gherkin
- Kasus Uji Gherkin menghubungkan pengujian penerimaan langsung ke pengujian otomatis
- Gaya penulisan kasus pengujian lebih mudah untuk menggunakan kembali kode dalam pengujian lainnya
Kekurangan Gherkin
- Hal ini memerlukan keterlibatan dan kolaborasi bisnis tingkat tinggi
- Mungkin tidak berfungsi dengan baik di semua skenario
- Tes yang ditulis dengan buruk dapat dengan mudah meningkatkan biaya pemeliharaan tes
Kesimpulan
- Gherkin adalah format spesifikasi mentimun
- Gherkin adalah bahasa berorientasi garis seperti YAML dan Python
- Gherkin Scripts menghubungkan konsep manusia tentang sebab dan akibat dengan konsep perangkat lunak tentang input/proses dan output
- Fitur, Latar Belakang, Skenario, Diberikan, Kapan, Lalu, Dan Tapi penting digunakan di Gherkin
- Di Gherkin, setiap skenario harus dijalankan secara terpisah
- Keuntungan terbesar Gherkin adalah cukup sederhana untuk dipahami oleh non-programmer
- Tes Gherkin mungkin tidak berfungsi dengan baik di semua jenis skenario