Bahasa Gherkin: Sintaksis, Format & Contoh
โก Ringkasan Cerdas
Gherkin adalah bahasa yang mudah dibaca oleh kalangan bisnis yang mendeskripsikan perilaku perangkat lunak tanpa detail implementasi. Bahasa ini menggunakan kata kunci Given, When, dan Then untuk mendefinisikan perilaku perangkat lunak. Cucumber Skenario pengujian dalam bahasa yang mudah dipahami, berfungsi sebagai dokumentasi yang selalu diperbarui dan kerangka dasar pengujian BDD otomatis.

Apa itu Bahasa Gherkin?
Ketimun adalah bahasa yang mudah dipahami oleh dunia bisnis yang membantu Anda mendeskripsikan perilaku bisnis tanpa harus membahas detail implementasi. Ini adalah bahasa khusus domain untuk mendefinisikan pengujian dalam Cucumber Format ini menggunakan bahasa sederhana untuk menjelaskan kasus penggunaan dan memungkinkan pengguna untuk menghapus detail logika dari pengujian perilaku.
Teks dalam Gherkin berfungsi sebagai dokumentasi dan kerangka dasar pengujian otomatis Anda. Format Gherkin didasarkan pada TreeTop Grammar, yang ada dalam lebih dari 37 bahasa, sehingga Anda dapat menulis Gherkin dalam lebih dari 37 bahasa lisan. Skrip ini memiliki dua tujuan utama: mendokumentasikan skenario pengguna, dan menyediakan dasar untuk menulis pengujian BDD otomatis.
Mengapa ketimun?
Tanpa format yang sama dan mudah dipahami, tim bisnis dan tim teknis mendeskripsikan persyaratan secara berbeda, yang menyebabkan kesalahpahaman. Gherkin memberi semua orang kosakata tunggal dan terstruktur yang mudah dibaca seperti bahasa Inggris biasa namun dapat dipetakan langsung ke pengujian yang dapat dieksekusi.
Sintaks Gherkin
Gherkin adalah bahasa berorientasi baris, sama seperti YAML dan PythonSetiap baris disebut langkah dan diawali dengan kata kunci. Tab atau spasi digunakan untuk indentasi. Komentar dapat ditambahkan di mana saja tetapi harus diawali dengan tanda #. Interpreter membaca setiap baris setelah menghapus kata kunci Gherkin seperti Given, When, dan Then.
Feature: Title of the Scenario Given [Preconditions or Initial Context] When [Event or Trigger] Then [Expected output]
Dokumen Gherkin memiliki ekstensi .feature dan hanyalah file uji dengan ekstensi deskriptif. Cucumber Membaca dokumen Gherkin dan menjalankan pengujian untuk memvalidasi bahwa perangkat lunak berperilaku sesuai dengan sintaks Gherkin.
Istilah-istilah Penting yang Digunakan dalam Gherkin
Kata kunci utamanya adalah Fitur, Latar Belakang, Skenario, Diberikan, Ketika, Maka, Dan, Tetapi, dan Garis Besar Skenario. Cucumber tidak memiliki aturan penamaan yang ketat, tetapi konvensi penamaan yang jelas akan sangat membantu.
Fitur
File tersebut harus memiliki ekstensi .feature, dan setiap file fitur hanya boleh menjelaskan satu fitur. Kata kunci Feature diawali dengan fitur: diikuti dengan spasi dan nama fitur.
Contoh
Setiap berkas fitur dapat memiliki beberapa skenario, dan setiap skenario dimulai dengan Skenario: diikuti dengan nama skenario.
Latar Belakang
Kata kunci Background menambahkan konteks pada skenario. Kata kunci ini dapat berisi langkah-langkah yang sama untuk setiap skenario; perbedaannya adalah langkah-langkah tersebut dijalankan sebelum setiap skenario.
Mengingat
Kata kunci Given menempatkan sistem dalam keadaan yang diketahui sebelum pengguna mulai berinteraksi dengannya. Kata kunci ini mendefinisikan prasyarat atau konteks:
Given I am on "/."
Ketika
Kata kunci When mendefinisikan tindakan yang dilakukan oleh pengguna:
When I perform "Sign In."
Kemudian
Kata kunci Then mendefinisikan hasil yang diamati setelah tindakan pada langkah When. Anda hanya perlu memverifikasi perubahan yang terlihat:
Then I should see "Welcome Tom."
Dan & Tapi
Anda mungkin memiliki beberapa langkah Given, When, atau Then. Kata kunci And dan But menambahkan langkah ekstra untuk meningkatkan keterbacaan:
And I enter "EmailAddress" with "tomjohn@gmail.com." But I should see "Welcome Tom."
Given, When, Then, And, dan But semuanya adalah langkah pengujian. Interpreter tidak akan menampilkan kesalahan jika Anda menukarnya, tetapi skenario tidak akan terbaca dengan masuk akal, jadi gunakan setiap kata kunci sesuai tujuan yang dimaksud.
Contoh Gherkin
Contoh 1: Fitur login untuk situs jejaring sosial.
Feature: Login functionality of a social networking site Given I am a registered user When I enter my username And I enter my password Then I should be redirected to the home page
Gherkin menganalisis setiap langkah yang tertulis dalam file fitur, dan langkah-langkah dalam file fitur harus sesuai dengan langkah-langkah dalam file definisi langkah.
Contoh 2: Skenario autentikasi pengguna dengan latar belakang.
Feature: User Authentication Background: Given the user is already registered on the website Scenario: Successful login 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
Praktik Terbaik Penggunaan Gherkin
- Setiap skenario harus dijalankan secara terpisah dan independen.
- Setiap fitur harus dapat dieksekusi secara terpisah.
- Informasi langkah-langkah harus ditampilkan secara terpisah.
- Hubungkan skenario Anda dengan persyaratan Anda dan track skenario mana yang termasuk dalam setiap persyaratan.
- Buat langkah-langkah modular yang mudah dipahami dan gabungkan skenario umum.
- Jelaskan apa yang dilakukan sistem tersebut, bukan bagaimana cara kerjanya.
Keunggulan ketimun
- Gherkin cukup sederhana sehingga orang yang bukan programmer pun dapat memahaminya.
- Para programmer dapat menggunakannya sebagai dasar yang kuat untuk memulai pengujian mereka.
- Hal ini membuat user story lebih mudah dipahami dan menargetkan kebutuhan bisnis.
- Para eksekutif bisnis dan pengembang perangkat lunak sama-sama dapat membaca naskah yang sama.
- Kasus uji Gherkin menghubungkan pengujian penerimaan secara langsung dengan pengujian otomatis.
- Gaya penulisan tersebut memudahkan penggunaan kembali kode di berbagai pengujian.
Kekurangan Gherkin
- Hal ini membutuhkan tingkat keterlibatan dan kolaborasi bisnis yang tinggi.
- Ini mungkin tidak berfungsi dengan baik dalam setiap skenario.
- Tes yang ditulis dengan buruk dapat meningkatkan biaya pemeliharaan tes.
