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

Sebelum ketimun

Setelah 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.

Istilah Penting yang digunakan dalam Gherkin
Istilah Penting yang digunakan dalam Gherkin
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