Język Gherkin: składnia, format i przykłady
⚡ Inteligentne podsumowanie
Gherkin to język biznesowy, który opisuje zachowanie oprogramowania bez szczegółów implementacji. Używa słów kluczowych Given, When i Then do definiowania Cucumber scenariusze testowe w języku potocznym, służące jako żywa dokumentacja i szkielet zautomatyzowanych testów BDD.

Co to jest język korniszonowy?
Korniszon to język zrozumiały dla biznesu, który pomaga opisać zachowania biznesowe bez zagłębiania się w szczegóły implementacji. Jest to język dziedzinowy do definiowania testów w Cucumber Format. Używa prostego języka do opisywania przypadków użycia i pozwala użytkownikom wyeliminować szczegóły logiczne z testów behawioralnych.
Tekst w Gherkinie pełni funkcję dokumentacji i szkieletu testów automatycznych. Format Gherkina jest oparty na gramatyce TreeTop, która jest dostępna w ponad 37 językach, co oznacza, że można pisać w Gherkinie w ponad 37 językach mówionych. Skrypt spełnia dwa główne cele: dokumentuje scenariusze użytkownika i stanowi podstawę do pisania automatycznych testów BDD.
Dlaczego korniszon?
Bez wspólnego, prostego formatu, zespoły biznesowe i techniczne opisują wymagania inaczej, co prowadzi do nieporozumień. Gherkin oferuje wszystkim jeden, ustrukturyzowany słownik, który brzmi jak potoczny angielski, a jednocześnie bezpośrednio odnosi się do testów wykonywalnych.
Składnia korniszona
Gherkin jest językiem zorientowanym liniowo, podobnie jak YAML i PythonKażdy wiersz nazywany jest krokiem i rozpoczyna się słowem kluczowym. Do wcięć używa się tabulatorów lub spacji. Komentarz można dodać w dowolnym miejscu, ale musi zaczynać się od znaku #. Interpreter odczytuje każdy wiersz po usunięciu słów kluczowych Gherkin, takich jak Given, When i Then.
Feature: Title of the Scenario Given [Preconditions or Initial Context] When [Event or Trigger] Then [Expected output]
Dokument Gherkina ma rozszerzenie .feature i jest po prostu plikiem testowym z opisowym rozszerzeniem. Cucumber odczytuje dokument Gherkina i wykonuje test w celu sprawdzenia, czy oprogramowanie zachowuje się zgodnie z opisem składni Gherkina.
Ważne terminy używane w ogórku kiszonym
Głównymi słowami kluczowymi są: Funkcja, Tło, Scenariusz, Dane, Kiedy, Wtedy, I, Ale oraz Zarys scenariusza. Cucumber nie ma ścisłych reguł nazewnictwa, ale jasna konwencja nazewnictwa jest pomocna.
Cecha
Plik powinien mieć rozszerzenie .feature, a każdy plik funkcji powinien opisywać tylko jedną funkcję. Słowo kluczowe Feature zaczyna się od Cecha: po którym następuje spacja i nazwa obiektu.
Scenariusz
Każdy plik funkcji może mieć wiele scenariuszy, a każdy scenariusz zaczyna się od Scenariusz: po której następuje nazwa scenariusza.
Tło
Słowo kluczowe „Background” dodaje kontekst do scenariusza. Może zawierać kroki wspólne dla każdego scenariusza; różnica polega na tym, że kroki te są uruchamiane przed każdym scenariuszem.
Biorąc pod uwagę,
Słowo kluczowe „Given” wprowadza system w znany stan, zanim użytkownik zacznie z nim interakcję. Definiuje ono warunek wstępny lub kontekst:
Given I am on "/."
Kiedy
Słowo kluczowe When definiuje akcję wykonywaną przez użytkownika:
When I perform "Sign In."
Następnie
Słowo kluczowe „Then” definiuje wynik obserwowany po wykonaniu czynności w kroku „When”. Należy weryfikować tylko zauważalne zmiany:
Then I should see "Welcome Tom."
I ale
Możesz mieć wiele kroków Given, When lub Then. Słowa kluczowe And i But dodają dodatkowe kroki dla czytelności:
And I enter "EmailAddress" with "tomjohn@gmail.com." But I should see "Welcome Tom."
Given, When, Then, And i But to kroki testowe. Interpreter nie zgłosi błędu, jeśli je zamienisz, ale scenariusz nie będzie czytelny, dlatego używaj każdego słowa kluczowego zgodnie z jego przeznaczeniem.
Przykłady korniszonów
1 przykład: Funkcja logowania do serwisu społecznościowego.
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 analizuje każdy krok zapisany w pliku funkcji, a kroki w pliku funkcji muszą być zgodne z krokami w pliku definicji kroków.
2 przykład: Scenariusz uwierzytelniania użytkownika z tłem.
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
Najlepsze praktyki korzystania z Gherkina
- Każdy scenariusz powinien być realizowany oddzielnie i niezależnie.
- Każda funkcja powinna być możliwa do wykonania samodzielnie.
- Informacje o kroku powinny być wyświetlane niezależnie.
- Połącz swoje scenariusze ze swoimi wymaganiami i track, które scenariusze należą do każdego wymagania.
- Twórz modułowe, łatwe do zrozumienia kroki i łącz typowe scenariusze.
- Opisz, co system robi, a nie jak to robi.
Zalety korniszona
- Gherkin jest na tyle prosty, że mogą go zrozumieć nawet osoby niebędące programistami.
- Programiści mogą wykorzystać ją jako solidną bazę do rozpoczęcia testów.
- Ułatwia zrozumienie historii użytkowników i ukierunkowuje je na wymagania biznesowe.
- Kadra kierownicza i programiści mogą czytać ten sam scenariusz.
- Przypadki testowe Gherkin łączą testy akceptacyjne bezpośrednio z testami automatycznymi.
- Taki styl pisania ułatwia ponowne wykorzystanie kodu w różnych testach.
Wady korniszona
- Wymaga to wysokiego poziomu zaangażowania i współpracy biznesowej.
- Może nie działać dobrze w każdym scenariuszu.
- Źle napisane testy mogą zwiększyć koszty utrzymania testów.
