Gurkspråk: Format, syntax & Gurktest i gurka

Innehållsförteckning:

Anonim

Vad är Gherkin Language?

Gurka är ett affärsläsbart språk som hjälper dig att beskriva affärsbeteende utan att gå in på detaljer om implementeringen. Det är ett domänspecifikt språk för att definiera tester i gurkaformat för specifikationer. Den använder vanligt språk för att beskriva användningsfall och låter användare ta bort logikinformation från beteendestester.

Texten i Gherkin langauge fungerar som dokumentation och skelett för dina automatiska tester. Gurkaformat är baserat på TreeTop-grammatik som finns på 37+ språk. Därför kan du skriva din gurka på 37+ talade språk.

Detta manus tjänar två primära syften:

  • Dokument användarscenarier
  • Skriva ett automatiserat test (BDD)

I denna Gherkin-handledning lär du dig

  • Vad är Gherkin Language?
  • Varför gurka?
  • Gurksyntax
  • Viktiga termer som används i Gherkin
  • Gurka exempel
  • Bästa metoder för att använda Gherkin
  • Fördelar med Gherkin

Varför gurka?

Behovet av gurka kan enkelt förklaras med följande bilder

Innan gurka

Efter Gherkin

Gurksyntax

Gurka är linjeorienterat språk precis som YAML och Python. Varje rad kallas steg och börjar med nyckelord och slutet av terminalerna med ett stopp. Flik eller mellanslag används för indragningen.

I det här skriptet kan en kommentar läggas till var du vill, men den bör börja med ett # -tecken. Den läste varje rad efter att ha tagit bort Ghrekins nyckelord som angivet, när, då etc.

Typiska gurka-steg ser ut:

Gherkin Scripts: kopplar det mänskliga konceptet orsak och verkan till programvarukonceptet input / process / output.

Gurksyntax:

Funktion: ScenariotitelAngivet [Förutsättningar eller initialt sammanhang]När [Event eller Trigger]Sedan [Förväntad utgång]

Ett Gherkin-dokument har ett tillägg .feature och helt enkelt bara en testfil med ett snyggt tillägg. Gurka läser Gherkin-dokumentet och utför ett test för att verifiera att programvaran beter sig enligt Gherkin-syntaxen.

Viktiga termer som används i Gherkin

  • Funktion
  • Bakgrund
  • Scenario
  • Given
  • När
  • Sedan
  • Och
  • Men
  • Exempel på scenariot

Namngivningskonventionen används för funktionsnamn. Det finns dock inga fastställda regler i gurka om namn.

Funktion:

Filen ska ha tillägget .feature och varje funktionsfil ska bara ha en funktion. Funktionsnyckelordet är med funktionen: och efter det läggs till kommer ett mellanslag och namn på funktionen att skrivas.

Scenario:

Varje funktionsfil kan ha flera scenarier, och varje scenario börjar med Scenario: följt av scenarionamn.

Bakgrund:

Bakgrundsnyckelord hjälper dig att lägga till lite sammanhang i scenariot. Det kan innehålla några steg i scenariot, men den enda skillnaden är att den ska köras före varje scenario.

Given:

Användningen av given nyckelord är att sätta systemet i ett välkänt tillstånd innan användaren börjar interagera med systemet. Du kan dock utelämna att skriva användarinteraktioner i givna steg om de anges i steget "Förutsättning".

Syntax:

Given
Givet - ett teststeg som definierar 'kontextMed tanke på att jag är på "/."

När:

När steget är att definiera åtgärder som utförs av användaren.

Syntax:

När
A When - ett teststeg som definierar den 'åtgärd' som utförsNär jag utför "Logga in."

Sedan:

Användningen av "då" nyckelord är att se resultatet efter åtgärden i när steg. Du kan dock bara verifiera märkbara ändringar.

Syntax:

 Sedan
Sedan - teststeg som definierar "resultatet".Då skulle jag se "Välkommen Tom."

Och men

Du kan ha flera givna när eller sedan.

Syntax:

Men
A Men - ytterligare teststeg som definierar '' action '' - resultatet. 'Men jag borde se "Välkommen Tom."
Och - ytterligare teststeg som definierar den "åtgärd" som utförsOch jag skriver "EmailAddress" med "Den här e-postadressen är skyddad från spamrobotar. Du måste ha Javascript aktiverat för att visa det ..."

Givet, när, då och, men är teststeg. Du kan använda dem omväxlande. Tolken visar inget fel. Men de kommer säkert inte att ge någon "mening" när de läses.

Viktiga termer som används i Gherkin

Givet Inloggningssidan öppnasNär jag anger användarnamn, lösenord och klickar på inloggningsknappenDå är jag på hemsidan

Gurka exempel

Exempel 1:

Funktion: Inloggningsfunktionalitet på Facebooks sociala nätverkssajt.Angivet: Jag är en facebookanvändare.När: Jag anger användarnamn som användarnamn.Och jag anger lösenordet som lösenordDå ska jag omdirigeras till hemsidan för facebook

Scenariot som nämns ovan är av en funktion som heter användarinloggning.

Alla ord skrivna i fetstil är gurka nyckelord.

Gherkin analyserar varje steg som skrivs i stegdefinitionsfilen. Därför ges stegen i funktionsfilen och stegdefinitionsfilen ska matcha.

Exempel 2:

Funktion: Användarautentiseringsbakgrund:Med tanke på att användaren redan är registrerad på webbplatsen Scenario:Med tanke på att användaren är på inloggningssidanNär användaren anger rätt e-postadressOch användaren anger rätt lösenordOch användaren klickar på inloggningsknappenDå ska användaren autentiserasOch användaren ska omdirigeras till sin instrumentpanelOch användaren bör presenteras med ett framgångsmeddelande

Bästa metoder för att använda Gherkin

  • Varje scenario ska köras separat
  • Varje funktion ska kunna köras tillsammans
  • Steginformation bör visas oberoende
  • Anslut dina scenarier med dina krav
  • Håll reda på vilka scenarier som ska ingå i ett kravdokument
  • Skapa modulära och lättförståeliga steg
  • Försök att kombinera alla dina vanliga scenarier

Fördelar med Gherkin

  • Gurka är tillräckligt enkelt för att icke-programmerare ska förstå
  • Programmerare kan använda den som en mycket solid bas för att starta sina tester
  • Det gör User Stories lättare att smälta
  • Gherkin-skript kan lätt förstås av företagsledare och utvecklare
  • Gherkin Testing riktar sig till företagets krav
  • En betydande del av de funktionella specifikationerna är skrivna som användarberättelser
  • Du behöver inte vara expert för att förstå den lilla Gherkin-kommandosatsen
  • Gherkin Test-fall länkar acceptansprov direkt till automatiserade test
  • Typ av skrivtestfall är lättare att återanvända kod i andra tester

Nackdelar med Gurka

  • Det kräver en hög nivå av affärsengagemang och samarbeten
  • Fungerar kanske inte bra i alla scenarier
  • Dåligt skrivna tester kan enkelt öka testunderhållskostnaden

Sammanfattning:

  • Gurka är formatet för gurkspecifikationer
  • Gurka är linjeorienterat språk precis som YAML och Python
  • Gherkin Scripts ansluter det mänskliga konceptet orsak och verkan till programvarukonceptet input / process och output
  • Feature, Background, Scenario, Given, When, Then, And But är viktigt att använda i Gherkin
  • I Gherkin ska varje scenario köras separat
  • Den största fördelen med Gherkin är tillräckligt enkel för icke-programmerare att förstå
  • Gurkin Test kanske inte fungerar bra i alla typer av scenarier