Okurkový jazyk: Formát, syntaxe a okurkový test na okurce

Co je to Gherkin Language?

kyselá okurka je obchodně čitelný jazyk, který vám pomůže popsat obchodní chování, aniž byste se museli podrobně zabývat implementací. Je to jazyk specifický pro doménu pro definování testů ve formátu Cucumber pro specifikace. K popisu případů použití používá prostý 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 automatizovaných testů. Formát Gherkin je založen na TreeTop Gramatice, která existuje ve více než 37 jazycích. Proto můžete svoji okurku napsat ve více než 37 mluvených jazycích.

Tento skript slouží dvěma primárním účelům:

  • Dokumentuje uživatelské scénáře
  • Psaní automatizovaného testu (BDD)

V tomto kurzu Gherkin se naučíte

Proč okurka?

Potřebu Gherkin lze snadno vysvětlit následujícími obrázky

Před okurkou

Po okurce

Okurková syntax

Gherkin je liniově 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ů končí. K odsazení slouží tabulátor nebo mezera.

V tomto skriptu lze přidat komentář kamkoli chcete, ale měl by začínat znakem #. Přečte každý řádek po odstranění Ghrekinových klíčových slov, jak je uvedeno, kdy, pak atd.

Typické okurkové kroky vypadají takto:

Gherkin Scripts: spojuje lidský koncept příčiny a následku se softwarovým konceptem vstupu/procesu/výstupu.

Okurková syntax:

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

Dokument Gherkin má příponu .feature a jednoduše jen testovací soubor s efektní příponou. Cucumber čte dokument Gherkin a provede test, aby ověřil, že se software chová podle syntaxe Gherkin.

Důležité pojmy používané v Okurce

  • Vlastnosti
  • Pozadí
  • Scénář
  • Vzhledem k tomu
  • Když
  • Pak
  • A
  • Ale
  • Příklady osnovy scénáře

Pro název funkce se používá konvence pojmenování. V okurkách však neexistují žádná stanovená pravidla týkající se jmen.

Vlastnosti:

Soubor by měl mít příponu .feature a každý soubor funkcí by měl mít pouze jednu funkci. Klíčové slovo funkce, které je součástí funkce: a poté přidejte mezeru a název funkce.

Scénář:

Každý soubor funkcí může mít více scénářů a každý scénář začíná scénářem: následovaným názvem scénáře.

Pozadí:

Klíčové slovo na pozadí vám pomůže přidat do scénáře nějaký kontext. Může obsahovat některé kroky scénáře, ale jediným rozdílem je, že by měl být spuštěn před každým scénářem.

Vzhledem k:

Klíčové slovo Given slouží k uvedení systému do známého stavu, než uživatel začne se systémem komunikovat. Můžete však vynechat psaní uživatelských interakcí v daných krocích, pokud je uvedeno v kroku 'Předpoklad'.

Syntax:

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.

Syntax:

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

Pak:

Pomocí klíčového slova 'then' je vidět výsledek po akci v kroku. Můžete však ověřit pouze znatelné změny.

Syntax:

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

A & Ale

Můžete mít vícekrát, když nebo Potom.

Syntax:

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 'This email address is being protected from spambots. You need JavaScript enabled to view it..'

Vzhledem k tomu, kdy, potom a, ale jsou testovací kroky. Můžete je používat zaměnitelně. Tlumočník nezobrazuje žádnou chybu. Při čtení však určitě nedají žádný 'smysl'.

Důležité výrazy používané v Okurce | _+_ |

Okurkové příklady

Příklad 1:

 Given The login page is opening When I input username, password and click the Login button Then I am on the Homepage 

Výše uvedený scénář má funkci zvanou přihlášení uživatele.

Všechna slova napsaná tučně jsou klíčová slova Gherkin.

Gherkin bude analyzovat každý krok zapsaný v souboru definice kroku. Kroky jsou proto uvedeny v souboru funkcí a soubor definice kroku by se měl shodovat.

Příklad 2:

 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 

Osvědčené postupy používání okurky

  • Každý scénář by se měl spustit samostatně
  • Každá funkce by měla být možné provést společně
  • Informace o krocích by se měly zobrazovat nezávisle
  • Propojte své scénáře se svými požadavky
  • Mějte kompletní přehled o tom, jaké scénáře by měly být zahrnuty v dokumentu požadavku
  • Vytvářejte modulární a snadno srozumitelné kroky
  • Zkuste zkombinovat všechny své běžné scénáře

Výhody okurky

  • Okurka je dostatečně jednoduchá na to, aby ji neprogramátoři pochopili
  • Programátoři jej mohou použít jako velmi solidní základ pro zahájení testů
  • Usnadňuje strávení uživatelských příběhů
  • Okurkový skript snadno pochopí obchodní ředitelé a vývojáři
  • Gherkin Testing se zaměřuje na obchodní požadavky
  • Významná část funkčních specifikací je napsána jako příběhy uživatelů
  • Abyste porozuměli malé sadě Gherkinových příkazů, nemusíte být odborníkem
  • Testovací případy Gherkin propojují akceptační testy přímo s automatizovanými testy
  • Styl psaní testovacích případů je snazší znovu použít kód v jiných testech

Nevýhody okurky

  • Vyžaduje vysokou úroveň obchodní angažovanosti 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 testů

Souhrn:

  • Okurka je formát pro specifikaci okurek
  • Okurka je liniově orientovaný jazyk stejně jako YAML a Krajta
  • 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 Gherkin důležité
  • V Gherkin by se měl každý scénář provést samostatně
  • Největší výhoda Gherkin je dostatečně jednoduchá na to, aby ji neprogramátoři pochopili
  • Okurkový test nemusí fungovat správně ve všech typech scénářů