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.

  • 📝 Prosty język: Gherkin opisuje zachowanie umożliwiające osobom niebędącym programistami czytanie i pisanie testów.
  • 🥒 Cucumber: Cucumber odczytuje pliki .feature i wykonuje kroki Gherkina jako testy.
  • 🔑 Dane-Kiedy-Wtedy: Podano zestaw kontekstowy, gdy wyzwolono akcję, a następnie potwierdzono wynik.
  • 🧱 Słowa kluczowe: Struktura każdego scenariusza: Cecha, Tło, Scenariusz oraz Oraz i Ale.
  • Najlepsze praktyki: Zachowaj każdy scenariusz niezależny i opisz co, a nie jak.
  • 🤖 Pomoc AI: Narzędzia AI tworzą scenariusze Given-When-Then na podstawie prostych wymagań.

Język korniszonowy w Cucumber

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.

FAQ

BDD to zwinna praktyka, w której zespoły opisują oczekiwane zachowania prostym językiem przed rozpoczęciem kodowania. Scenariusze Gherkin odzwierciedlają to zachowanie, dzięki czemu członkowie zespołu biznesowego i technicznego mają wspólne rozumienie.

Gherkin to składnia języka potocznego służąca do pisania scenariuszy. Cucumber jest jednym z kilku narzędzi, które odczytują pliki .feature Gherkin i wykonują odpowiednie kroki w Twojej aplikacji.

Zarys scenariusza wykonuje te same kroki z wieloma zestawami danych wymienionymi w tabeli „Przykłady”. Pozwala to uniknąć duplikowania scenariusza dla każdego zestawu wartości wejściowych.

Definicja kroku mapuje każdy krok Gherkina na kod, który go uruchamia. Kiedy Cucumber odczytuje krok, wyszukuje pasującą definicję i wykonuje odpowiednią metodę w aplikacji.

Trzej amigos to właściciel produktu, programista i tester, którzy wspólnie recenzują daną funkcję. Ich wspólny punkt widzenia pozwala tworzyć jaśniejsze i bardziej kompletne scenariusze Gherkin niż w przypadku każdej pojedynczej roli.

Oprócz Cucumber, Gherkin jest wspierany przez Przepływ Spec dla .NET i Behave dla Python, wśród innych struktur BDD.

Tak. Asystenci AI przekształcają historię użytkownika w robocze scenariusze „Gdy-Kiedy-Wtedy”, sugerują skrajne przypadki i dbają o spójność sformułowań, choć tester powinien sprawdzić ich poprawność.

Narzędzia AI odczytują proste wymagania i automatyzują pierwszy szkic ustrukturyzowanych kroków „Give-When-Then”. Przyspiesza to proces tworzenia, ale zespoły nadal dopracowują sformułowania, aby odpowiadały rzeczywistym kryteriom akceptacji.

Podsumuj ten post następująco: