Co to jest język korniszona?
Korniszon to czytelny język biznesowy, który pomaga opisywać zachowania biznesowe bez wchodzenia w szczegóły implementacji. Jest to język specyficzny dla domeny, służący do definiowania testów w formacie Cucumber dla specyfikacji. Używa prostego języka do opisywania przypadków użycia i umożliwia użytkownikom usuwanie szczegółów logiki z testów zachowania.
Tekst w języku Gherkin służy jako dokumentacja i szkielet automatycznych testów. Format Gherkin jest oparty na TreeTop Grammar, który istnieje w ponad 37 językach. Dlatego możesz napisać korniszona w ponad 37 językach.
Ten skrypt służy dwóm głównym celom:
- Dokumentuje scenariusze użytkownika
- Pisanie testu automatycznego (BDD)
W tym samouczku dotyczącym ogórków dowiesz się
- Co to jest język korniszona?
- Dlaczego korniszon?
- Składnia korniszona
- Ważne terminy używane w korniszonie
- Przykład korniszona
- Najlepsze praktyki korzystania z korniszona
- Zalety korniszona
Dlaczego korniszon?
Potrzeba korniszona można łatwo wyjaśnić na poniższych ilustracjach
Przed korniszonem
Po Gherkin
Składnia korniszona
Gherkin jest językiem liniowym, podobnie jak YAML i Python. Każda linia nazywa się step i zaczyna się słowem kluczowym, a kończy terminale stopem. 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, jak podano, kiedy, wtedy itp.
Typowe kroki korniszona wyglądają następująco:
Gherkin Scripts: łączy ludzką koncepcję przyczyny i skutku z koncepcją oprogramowania wejścia / procesu / wyjścia.
Składnia Gherkin:
Cecha: Tytuł scenariuszaBiorąc pod uwagę [warunki wstępne lub kontekst początkowy]Kiedy [zdarzenie lub wyzwalacz]Następnie [Oczekiwana wydajność]
Dokument Gherkin ma rozszerzenie .feature i po prostu plik testowy z fantazyjnym rozszerzeniem. Cucumber czyta dokument Gherkin i wykonuje test w celu sprawdzenia, czy oprogramowanie zachowuje się zgodnie ze składnią Gherkin.
Ważne terminy używane w korniszonie
- Funkcja
- tło
- Scenariusz
- Dany
- Gdy
- Następnie
- I
- Ale
- Przykłady zarysu scenariusza
Konwencja nazewnictwa jest używana dla nazwy funkcji. Jednak w Cucumber nie ma ustalonych zasad dotyczących nazw.
Funkcja:
Plik powinien mieć rozszerzenie .feature, a każdy plik funkcji powinien mieć tylko jedną funkcję. Słowo kluczowe funkcji jest związane z Cechą: a po dodaniu zostanie zapisana spacja i nazwa funkcji.
Scenariusz:
Każdy plik funkcji może mieć wiele scenariuszy, a każdy scenariusz zaczyna się od scenariusza: po którym następuje nazwa scenariusza.
Tło:
Słowo kluczowe w tle pomaga dodać kontekst do scenariusza. Może zawierać pewne kroki scenariusza, ale jedyną różnicą jest to, że powinien być uruchamiany przed każdym scenariuszem.
Dany:
Użycie słowa kluczowego Given ma na celu wprowadzenie systemu w znany stan, zanim użytkownik rozpocznie interakcję z systemem. Możesz jednak pominąć pisanie interakcji użytkownika w Podanych krokach, jeśli podano w kroku „Warunek wstępny”.
Składnia:
Dany
Given - krok testowy, który definiuje kontekstBiorąc pod uwagę, że jestem na „/”.
Gdy:
Kiedy krok polega na zdefiniowaniu akcji wykonywanej przez użytkownika.
Składnia:
Gdy
A When - etap testowy, który definiuje wykonywaną „akcję”Kiedy wykonuję „Zaloguj się”.
Następnie:
Użycie słowa kluczowego „then” służy do wyświetlenia wyniku działania po wykonaniu kroku. Możesz jednak zweryfikować tylko zauważalne zmiany.
Składnia:
Następnie
Następnie - krok testowy, który definiuje „wynik”.Wtedy powinienem zobaczyć „Witaj Tomie”.
I ale
Możesz mieć wiele podanych kiedy lub Wtedy.
Składnia:
Ale
A Ale - dodatkowy krok testowy, który definiuje wynik „działania”.Ale powinienem zobaczyć „Witaj Tomie”.
I - dodatkowy krok testowy, który definiuje wykonywaną „akcję”I piszę „EmailAddress” z „ Ten adres e-mail jest chroniony przed robotami spamującymi. Aby go zobaczyć, konieczne jest włączenie obsługi JavaScript…”
Biorąc pod uwagę, kiedy, wtedy i, ale są etapami testowymi. Możesz ich używać zamiennie. Tłumacz nie wyświetla żadnego błędu. Jednak z pewnością nie będą one miały żadnego „sensu” po przeczytaniu.
Biorąc pod uwagę Otwiera się strona logowaniaKiedy wprowadzam nazwę użytkownika, hasło i klikam przycisk ZalogujWtedy jestem na stronie głównej
Przykłady korniszonów
Przykład 1:
Cecha: Funkcjonalność logowania do serwisu społecznościowego Facebook.Biorąc pod uwagę: jestem użytkownikiem Facebooka.Kiedy: Podaję nazwę użytkownika jako nazwę użytkownika.I wpisuję hasło jako hasłoNastępnie powinienem zostać przekierowany na stronę główną facebooka
Wspomniany powyżej scenariusz dotyczy funkcji zwanej logowaniem użytkownika.
Wszystkie pogrubione słowa są słowami kluczowymi Gherkin.
Gherkin przeanalizuje każdy krok zapisany w pliku definicji kroku. Dlatego kroki są podane w pliku funkcji, a plik definicji kroku powinien być zgodny.
Przykład 2:
Funkcja: Tło uwierzytelniania użytkownika:Biorąc pod uwagę, że użytkownik jest już zarejestrowany w serwisie. Scenariusz:Biorąc pod uwagę, że użytkownik jest na stronie logowaniaGdy użytkownik wprowadzi poprawny adres e-mailA użytkownik wprowadza poprawne hasłoA użytkownik klika przycisk ZalogujNastępnie użytkownik powinien zostać uwierzytelnionyA użytkownik powinien zostać przekierowany do swojego pulpitu nawigacyjnegoA użytkownikowi powinien zostać przedstawiony komunikat o powodzeniu
Najlepsze praktyki korzystania z korniszona
- Każdy scenariusz powinien być wykonywany osobno
- Każda funkcja powinna być wykonywana razem
- Informacje o krokach powinny być wyświetlane niezależnie
- Połącz swój scenariusz ze swoimi wymaganiami
- Zachowaj pełną kontrolę nad scenariuszami, które powinny zostać uwzględnione w dokumencie wymagań
- Twórz modułowe i łatwe do zrozumienia kroki
- Spróbuj połączyć wszystkie swoje typowe scenariusze
Zalety korniszona
- Korniszon jest wystarczająco prosty do zrozumienia dla osób nie będących programistami
- Programiści mogą wykorzystać to jako bardzo solidną podstawę do rozpoczęcia testów
- Dzięki temu Historie użytkowników są łatwiejsze do strawienia
- Skrypt Gherkin może być łatwo zrozumiały dla kierowników firm i programistów
- Testowanie korniszona jest ukierunkowane na wymagania biznesowe
- Znaczna część specyfikacji funkcjonalnych jest napisana jako historyjki użytkownika
- Nie musisz być ekspertem, aby zrozumieć mały zestaw poleceń Gherkin
- Przypadki Gherkin Test łączą testy akceptacyjne bezpośrednio z testami automatycznymi
- Styl pisania przypadków testowych jest łatwiejszy do ponownego wykorzystania 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 ich utrzymania
Podsumowanie:
- Korniszon to format specyfikacji ogórka
- Gherkin jest językiem liniowym, podobnie jak YAML i Python
- Gherkin Scripts łączy ludzką koncepcję przyczyny i skutku z koncepcją oprogramowania wejścia / procesu i wyjścia
- Funkcja, tło, scenariusz, dane, kiedy, wtedy i ale są bardzo ważne w Gherkin
- W Gherkin każdy scenariusz powinien być wykonywany osobno
- Największa zaleta Korniszona jest wystarczająco prosta do zrozumienia dla osób nie będących programistami
- Test korniszona może nie działać dobrze we wszystkich typach scenariuszy