Gherkin Language: Syntax, format och exempel
โก Smart sammanfattning
Gherkin รคr ett affรคrslรคsbart sprรฅk som beskriver programvarubeteende utan implementeringsdetaljer. Det anvรคnder nyckelorden Given, When och Then fรถr att definiera Cucumber testscenarier i enkelt sprรฅk, som fungerar som levande dokumentation och skelettet fรถr automatiserade BDD-tester.

Vad รคr Gherkin Language?
Gurka รคr ett affรคrsmรคssigt lรคsbart sprรฅk som hjรคlper dig att beskriva affรคrsbeteende utan att gรฅ in pรฅ implementeringsdetaljer. Det รคr ett domรคnspecifikt sprรฅk fรถr att definiera tester i Cucumber format. Den anvรคnder ett enkelt sprรฅk fรถr att beskriva anvรคndningsfall och lรฅter anvรคndare ta bort logiska detaljer frรฅn beteendetester.
Texten i Gherkin fungerar som dokumentation och som skelett fรถr dina automatiserade tester. Gherkin-formatet รคr baserat pรฅ TreeTop Grammar, som finns pรฅ fler รคn 37 sprรฅk, sรฅ du kan skriva Gherkin pรฅ รถver 37 talade sprรฅk. Skriptet tjรคnar tvรฅ huvudsakliga syften: det dokumenterar anvรคndarscenarier och det utgรถr grunden fรถr att skriva automatiserade BDD-tester.
Varfรถr gurka?
Utan ett gemensamt, enkelt sprรฅkformat beskriver affรคrs- och teknikteam kraven pรฅ olika sรคtt, vilket orsakar missfรถrstรฅnd. Gherkin ger alla ett enda, strukturerat ordfรถrrรฅd som lรคses som vanlig engelska men som kopplas direkt till kรถrbara tester.
gurka syntax
Gherkin รคr ett radorienterat sprรฅk, precis som YAML och PythonVarje rad kallas ett steg och bรถrjar med ett nyckelord. Tabbar eller mellanslag anvรคnds fรถr indentering. En kommentar kan lรคggas till var som helst men mรฅste bรถrja med ett #-tecken. Tolkaren lรคser varje rad efter att ha tagit bort Gherkin-nyckelord som Givet, When och Then.
Feature: Title of the Scenario Given [Preconditions or Initial Context] When [Event or Trigger] Then [Expected output]
Ett Gherkin-dokument har filรคndelsen .feature och รคr helt enkelt en testfil med en beskrivande filรคndelse. Cucumber lรคser Gherkin-dokumentet och kรถr ett test fรถr att validera att programvaran beter sig som Gherkin-syntaxen beskriver.
Viktiga termer som anvรคnds i gurka
De viktigaste nyckelorden รคr Funktion, Bakgrund, Scenario, Givet, Nรคr, Sedan, Och, Men och Scenarioรถversikt. Cucumber har inga strikta namnregler, men en tydlig namnkonvention hjรคlper.
Leverans
Filen ska ha tillรคgget .feature, och varje featurefil ska endast beskriva en feature. Nyckelordet Feature bรถrjar med Sรคrdrag: fรถljt av ett mellanslag och funktionsnamnet.
Scenario
Varje funktionsfil kan ha flera scenarier, och varje scenario bรถrjar med Scenario: fรถljt av scenarionamnet.
Bakgrund
Nyckelordet Bakgrund lรคgger till sammanhang till scenariot. Det kan innehรฅlla steg som delas av varje scenario; skillnaden รคr att dessa steg kรถrs fรถre varje scenario.
Med tanke pรฅ
Nyckelordet Given fรถrsรคtter systemet i ett kรคnt tillstรฅnd innan anvรคndaren bรถrjar interagera med det. Det definierar fรถrutsรคttningen eller kontexten:
Given I am on "/."
Nรคr
Nyckelordet When definierar den รฅtgรคrd som utfรถrs av anvรคndaren:
When I perform "Sign In."
Sedan
Nyckelordet Then definierar resultatet som observeras efter รฅtgรคrden i steget When. Du bรถr endast verifiera mรคrkbara fรถrรคndringar:
Then I should see "Welcome Tom."
Och men
Du kan ha flera steg: Givet, Nรคr eller Sedan. Nyckelorden Och och Men lรคgger till extra steg fรถr lรคsbarhet:
And I enter "EmailAddress" with "tomjohn@gmail.com." But I should see "Welcome Tom."
Givet, Nรคr, Sedan, Och och Men รคr alla teststeg. Tolkaren genererar inte ett fel om du byter mellan dem, men scenariot kommer inte att lรคsas rimligt, sรฅ anvรคnd varje nyckelord fรถr dess avsedda syfte.
gurka exempel
Exempel 1: En inloggningsfunktion fรถr ett socialt nรคtverk.
Feature: Login functionality of a social networking site Given I am a registered user When I enter my username And I enter my password Then I should be redirected to the home page
Gherkin analyserar varje steg som skrivs i funktionsfilen, och stegen i funktionsfilen mรฅste matcha de i stegdefinitionsfilen.
Exempel 2: Ett anvรคndarautentiseringsscenario med en bakgrund.
Feature: User Authentication Background: Given the user is already registered on the website Scenario: Successful login 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
Bรคsta praxis fรถr att anvรคnda gurka
- Varje scenario bรถr utfรถras separat och oberoende.
- Varje funktion ska kunna kรถras pรฅ egen hand.
- Steginformation bรถr visas separat.
- Koppla dina scenarier till dina krav och track vilka scenarier som hรถr till varje krav.
- Skapa modulรคra, lรคttfรถrstรฅeliga steg och kombinera vanliga scenarier.
- Beskriv vad systemet gรถr, inte hur det gรถr det.
Fรถrdelar med gurka
- Gherkin รคr enkelt nog fรถr icke-programmerare att fรถrstรฅ.
- Programmerare kan anvรคnda det som en solid bas fรถr att starta sina tester.
- Det gรถr anvรคndarberรคttelser lรคttare att smรคlta och riktar in sig pรฅ affรคrskrav.
- Fรถretagsledare och utvecklare kan bรฅda lรคsa samma skript.
- Ghurkin-testfall lรคnkar acceptanstester direkt till automatiserade tester.
- Skrivstilen gรถr det enklare att รฅteranvรคnda kod i olika tester.
Nackdelar med gurka
- Det krรคver en hรถg nivรฅ av affรคrsengagemang och samarbete.
- Det kanske inte fungerar bra i alla scenarier.
- Dรฅligt skrivna tester kan รถka kostnaden fรถr testunderhรฅll.
