Język korniszonowy: format, składnia i test korniszonowy w Cucumber

Co to jest język korniszonowy?

Korniszon jest językiem biznesowym, który pomaga opisać zachowania biznesowe bez wchodzenia w szczegóły implementacji. Jest to język specyficzny dla domeny, służący do definiowania testów w Cucumber format specyfikacji. Używa prostego języka do opisywania przypadków użycia i pozwala użytkownikom usuwać szczegóły logiki z testów zachowania.

Tekst w języku Gherkin pełni rolę dokumentacji i szkieletu Twoich testów automatycznych. Format korniszonów opiera się na gramatyce TreeTop, która istnieje w ponad 37 językach. Dlatego możesz napisać swój korniszon w ponad 37 językach mówionych.

Skrypt ten służy dwóm głównym celom:

  • Dokumentuje scenariusze użytkownika
  • Pisanie testu automatycznego (BDD)

Dlaczego korniszon?

Potrzebę Gherkina można łatwo wyjaśnić, korzystając z poniższych obrazków

Przed Korniszonem

Przed Korniszonem

Po Korniszonie

Po Korniszonie

Składnia korniszona

Gherkin jest językiem zorientowanym liniowo, podobnie jak YAML i Python. Każda linia nazywa się step i zaczyna się od słowa kluczowego, a kończy kropką. Do wcięcia używa się tabulatora lub spacji.

W tym skrypcie komentarz można dodać w dowolnym miejscu, ale powinien zaczynać się od znaku #. Czyta każdą linię po usunięciu słów kluczowych Ghrekina zgodnie z podanymi wartościami, kiedy, następnie itp.

Wyglądają typowe kroki Korniszona

Skrypty korniszonowe: łączą ludzką koncepcję przyczyny i skutku z programową koncepcją wejścia/procesu/wyjścia.

Składnia korniszona

Feature: Title of the Scenario
Given [Preconditions or Initial Context]
When [Event or Trigger]
Then [Expected output]

Dokument Gherkin ma rozszerzenie .feature i jest po prostu plikiem testowym z fantazyjnym rozszerzeniem. Cucumber czyta dokument Gherkin i wykonuje test w celu sprawdzenia, czy oprogramowanie zachowuje się zgodnie ze składnią Gherkina.

Ważne terminy używane w Korniszonie

  • Cecha
  • Tło
  • Scenariusz
  • Biorąc pod uwagę,
  • Kiedy
  • Następnie
  • oraz
  • Ale
  • Przykłady zarysu scenariusza

W przypadku nazw funkcji stosowana jest konwencja nazewnictwa. Jednakże nie ma w nim ustalonych reguł Cucumber o imionach.

Cecha

Plik powinien mieć rozszerzenie .feature, a każdy plik funkcji powinien mieć tylko jedną funkcję. Słowo kluczowe funkcji jest z Cechą: a po tym dodaniu zostanie zapisana spacja i nazwa funkcji.

Scenariusz

Każdy plik funkcji może mieć wiele scenariuszy, a każdy scenariusz zaczyna się od Scenariusz:, po którym następuje nazwa scenariusza.

Tło

Słowo kluczowe tła pomaga dodać kontekst do scenariusza. Może zawierać pewne kroki scenariusza, ale jedyną różnicą jest to, że należy go uruchomić przed każdym scenariuszem.

Biorąc pod uwagę,

Użycie słowa kluczowego Give ma na celu wprowadzenie systemu w znajomy stan, zanim użytkownik rozpocznie interakcję z systemem. Można jednak pominąć zapisywanie interakcji użytkownika w podanych krokach, jeśli podano je w kroku „Warunek wstępny”.

Składnia:

Given
Given - a test step that defines the 'context
Given I am on "/."

Kiedy

Kiedy krokiem jest zdefiniowanie akcji wykonywanej przez użytkownika.

Składnia:

When
A When - a test step that defines the 'action' performed
When I perform "Sign In."

Następnie

Użycie słowa kluczowego „wtedy” polega na zobaczeniu wynik po akcji w którym kroku. Można jednak zweryfikować jedynie zauważalne zmiany.

Składnia:

 Then
Then - test step that defines the 'outcome.'
Then I should see "Welcome Tom."

I ale

Możesz mieć wiele podanych „When” lub „Then”.

Składnia:

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

Biorąc pod uwagę, Kiedy, Następnie i, ale są etapami testowymi. Można ich używać zamiennie. Interpreter nie wyświetla żadnego błędu. Jednak po przeczytaniu z pewnością nie będą miały żadnego „sensu”.

Ważne terminy używane w Korniszonie
Ważne terminy używane w Korniszonie
Given The login page is opening
When I input username, password and click the Login button 
Then I am on the Homepage

Przykłady korniszonów

1 przykład:

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 

Powyższy scenariusz dotyczy funkcji zwanej logowaniem użytkownika.

Korniszon przeanalizuje każdy krok zapisany w pliku definicji kroku. Dlatego kroki są podane w pliku funkcji, a plik definicji kroku powinien być zgodny.

2 przykład:

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 

Najlepsze praktyki stosowania korniszona

  • Każdy scenariusz należy wykonać osobno
  • Każda funkcja powinna być możliwa do wykonania
  • Informacje o krokach powinny być wyświetlane niezależnie
  • Połącz swój scenariusz ze swoimi wymaganiami
  • Śledź w pełni, jakie scenariusze powinny zostać uwzględnione w dokumencie wymagań
  • Twórz modułowe i łatwe do zrozumienia kroki
  • Spróbuj połączyć wszystkie typowe scenariusze

Zalety korniszona

  • Korniszon jest na tyle prosty, że niebędący programistami mogą go zrozumieć
  • Programiści mogą go wykorzystać jako bardzo solidną bazę do rozpoczęcia testów
  • Dzięki temu Historie użytkowników są łatwiejsze do przyswojenia
  • Skrypt korniszonowy może być łatwo zrozumiały dla kadry kierowniczej i programistów
  • Gherkin Testing jest ukierunkowany na wymagania biznesowe
  • Znaczna część specyfikacji funkcjonalnych jest napisana w formie historii użytkownika
  • Nie musisz być ekspertem, aby zrozumieć mały zestaw poleceń Gherkin
  • Przypadki testowe Gherkin łączą testy akceptacyjne bezpośrednio z testami automatycznymi
  • Styl pisania przypadków testowych ułatwia ponowne wykorzystanie kodu w innych testach

Wady korniszona

  • Wymaga wysokiego poziomu zaangażowania biznesowego i współpracy
  • Może nie działać dobrze we wszystkich scenariuszach
  • Źle napisane testy mogą łatwo zwiększyć koszty utrzymania testów

Podsumowanie

  • Korniszon to format specyfikacji ogórków
  • Gherkin jest językiem zorientowanym liniowo, podobnie jak YAML i Python
  • Gherkin Scripts łączy ludzką koncepcję przyczyny i skutku z programową koncepcją danych wejściowych/procesu i wyników
  • Cecha, Tło, Scenariusz, Biorąc pod uwagę, Kiedy, Następnie i Ale są ważne w Korniszonie
  • W Gherkin każdy scenariusz powinien być wykonywany osobno
  • Największą zaletą Gherkina jest na tyle prosta, że ​​mogą ją zrozumieć osoby niebędące programistami
  • Test Korniszona może nie działać dobrze we wszystkich typach scenariuszy