Jazyk okurek: Formát, syntaxe a test okurek v Cucumber
Co je jazyk okurek?
kyselá okurka je obchodně čitelný jazyk, který vám pomůže popsat obchodní chování, aniž byste zacházeli do detailů implementace. Je to doménově specifický jazyk pro definování testů Cucumber formát pro specifikace. K popisu případů použití používá jednoduchý jazyk a umožňuje uživatelům odstranit logické detaily z testů chování.
Text v jazyce Gherkin funguje jako dokumentace a kostra vašich automatických testů. Formát Gherkin je založen na TreeTop Grammar, který existuje ve více než 37 jazycích. Proto můžete svou okurku napsat ve více než 37 mluvených jazycích.
Tento skript slouží dvěma hlavním účelům:
- Dokumenty uživatelské scénáře
- Psaní automatického testu (BDD)
Proč okurka?
Potřebu okurky lze snadno vysvětlit následujícími obrázky
Před okurkou
Po okurce
Gherkinova syntaxe
Gherkin je linkově orientovaný jazyk stejně jako YAML a Python. Každý řádek se nazývá krok a začíná klíčovým slovem a konec terminálů stopem. K odsazení se používá tabulátor nebo mezera.
V tomto skriptu lze komentář přidat kamkoli chcete, ale měl by začínat znakem #. Přečetl každý řádek po odstranění klíčových slov Ghrekina, jak je uvedeno, kdy, potom atd.
Typické kroky okurek vypadají
Gherkin Scripts: spojuje lidský koncept příčiny a následku se softwarovým konceptem vstupu/procesu/výstupu.
Gherkinova syntaxe
Feature: Title of the Scenario Given [Preconditions or Initial Context] When [Event or Trigger] Then [Expected output]
Dokument okurky má příponu .feature a jednoduše jen testovací soubor s efektní příponou. Cucumber přečte dokument Gherkin a provede test, aby ověřil, že se software chová podle syntaxe Gherkin.
Důležité termíny používané v okurce
- vlastnost
- Pozadí
- Scénář
- Vzhledem k
- Kdy
- Pak
- A
- Ale
- Příklady osnovy scénářů
Pro název prvku se používá konvence pojmenování. Nejsou zde však stanovena žádná pravidla Cucumber o jménech.
vlastnost
Soubor by měl mít příponu .feature a každý soubor funkce by měl mít pouze jednu vlastnost. Klíčové slovo funkce je s funkcí Feature: a po přidání bude napsána mezera a název prvku.
Scénář
Každý soubor funkcí může mít více scénářů a každý scénář začíná Scenario: následovaným názvem scénáře.
Pozadí
Klíčové slovo pozadí vám pomůže přidat do scénáře kontext. Může obsahovat některé kroky scénáře, ale jediný rozdíl je v tom, že by měl být spuštěn před každým scénářem.
Vzhledem k
Klíčové slovo Given se používá k uvedení systému do známého stavu předtím, než uživatel začne se systémem pracovat. Můžete však vynechat zápis uživatelských interakcí v daných krocích, pokud jsou uvedeny v kroku „Předběžná podmínka“.
Syntaxe:
Given
Given - a test step that defines the 'context Given I am on "/."
Kdy
Když je krokem definování akce prováděné uživatelem.
Syntaxe:
When
A When - a test step that defines the 'action' performed When I perform "Sign In."
Pak
Použití klíčového slova 'pak' je vidět výsledek po akci v při kroku. Můžete však ověřit pouze znatelné změny.
Syntaxe:
Then
Then - test step that defines the 'outcome.' Then I should see "Welcome Tom."
A & Ale
Můžete mít násobek dané kdy nebo Potom.
Syntaxe:
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."
Dané, Kdy, Potom a, ale jsou testovací kroky. Můžete je používat zaměnitelně. Překladač nezobrazuje žádnou chybu. Při čtení však jistě nebudou dávat „smysl“.
Given The login page is opening When I input username, password and click the Login button Then I am on the Homepage
Příklady okurky
Příklad 1:
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
Výše zmíněný scénář se týká funkce zvané přihlášení uživatele.
Gherkin bude analyzovat každý krok zapsaný v souboru definice kroku. Proto jsou kroky uvedeny v souboru prvků a soubor definice kroku by se měl shodovat.
Příklad 2:
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
Osvědčené postupy používání okurek
- Každý scénář by se měl spustit samostatně
- Každá funkce by měla být spuštěna
- Informace o krocích by se měly zobrazovat nezávisle
- Propojte své scénáře s vašimi požadavky
- Mějte kompletní přehled o tom, jaké scénáře by měly být zahrnuty do dokumentu požadavků
- Vytvořte modulární a snadno pochopitelné kroky
- Zkuste zkombinovat všechny vaše běžné scénáře
Výhody okurky
- Okurka je dostatečně jednoduchá, aby ji pochopili i neprogramátoři
- Programátoři jej mohou použít jako velmi solidní základ pro zahájení svých testů
- Usnadňuje trávení uživatelských příběhů
- Skript okurky snadno pochopí obchodní manažeři a vývojáři
- Testování okurek se zaměřuje na obchodní požadavky
- Významná část funkčních specifikací je napsána jako uživatelské příběhy
- Nemusíte být odborník, abyste pochopili malou sadu příkazů okurky
- Případy Gherkin Test propojují akceptační testy přímo s automatizovanými testy
- Styl psaní testů Případy jsou jednodušší pro opětovné použití kódu v jiných testech
Nevýhody okurky
- Vyžaduje to vysokou úroveň obchodního zapojení a spolupráce
- Nemusí fungovat dobře ve všech scénářích
- Špatně napsané testy mohou snadno zvýšit náklady na údržbu testu
Shrnutí
- Okurka je formát pro specifikace okurek
- Gherkin je linkově orientovaný jazyk stejně jako YAML a Python
- Gherkin Scripts spojuje lidský koncept příčiny a následku se softwarovým konceptem vstupu/procesu a výstupu
- Funkce, Pozadí, Scénář, Dané, Kdy, Potom a Ale jsou v okurce důležité
- V Gherkin by se měl každý scénář spustit samostatně
- Největší výhoda Gherkin je dostatečně jednoduchá, aby ji pochopili i neprogramátoři
- Gherkin Test nemusí fungovat dobře ve všech typech scénářů