Sylteagurksprog: Syntaks, format og eksempler
โก Smart opsummering
Gherkin er et forretningsvenligt sprog, der beskriver softwareadfรฆrd uden implementeringsdetaljer. Det bruger nรธgleordene Given, When og Then til at definere Cucumber testscenarier i et letforstรฅeligt sprog, der fungerer som levende dokumentation og skelettet for automatiserede BDD-tests.

Hvad er Gherkin Language?
Sylteagurk er et forretningslรฆsbart sprog, der hjรฆlper dig med at beskrive forretningsadfรฆrd uden at gรฅ i detaljer med implementeringen. Det er et domรฆnespecifikt sprog til at definere tests i Cucumber format. Den bruger et enkelt sprog til at beskrive brugsscenarier og lader brugerne fjerne logiske detaljer fra adfรฆrdstests.
Teksten i Gherkin fungerer som dokumentation og som skelet for dine automatiserede tests. Gherkin-formatet er baseret pรฅ TreeTop Grammar, som findes pรฅ mere end 37 sprog, sรฅ du kan skrive Gherkin pรฅ over 37 talte sprog. Scriptet tjener to primรฆre formรฅl: det dokumenterer brugerscenarier, og det danner grundlag for at skrive automatiserede BDD-tests.
Hvorfor cornichon?
Uden et fรฆlles, letforstรฅeligt format beskriver forretnings- og tekniske teams krav forskelligt, hvilket skaber misforstรฅelser. Gherkin giver alle et enkelt, struktureret ordforrรฅd, der lรฆses som almindeligt engelsk, men som er direkte knyttet til eksekverbare tests.
Agurkesyntaks
Gherkin er et linjeorienteret sprog, ligesom YAML og PythonHver linje kaldes et trin og starter med et nรธgleord. Tabulatorer eller mellemrum bruges til indrykning. En kommentar kan tilfรธjes hvor som helst, men skal starte med et #-tegn. Fortolkeren lรฆser hver linje efter at have fjernet Gherkin-nรธgleord som f.eks. Givet, Nรฅr og Sรฅ.
Feature: Title of the Scenario Given [Preconditions or Initial Context] When [Event or Trigger] Then [Expected output]
Et Gherkin-dokument har filtypen .feature og er blot en testfil med en beskrivende filtypenavn. Cucumber lรฆser Gherkin-dokumentet og udfรธrer en test for at validere, at softwaren opfรธrer sig som beskrevet i Gherkin-syntaksen.
Vigtige udtryk brugt i sylteagurk
De vigtigste nรธgleord er Funktion, Baggrund, Scenarie, Givet, Hvornรฅr, Sรฅ, Og, Men og Scenarieoversigt. Cucumber har ingen strenge navngivningsregler, men en klar navngivningskonvention hjรฆlper.
Feature
Filen skal have filtypenavnet .feature, og hver feature-fil skal kun beskrive รฉn feature. Nรธgleordet Feature starter med Feature: efterfulgt af et mellemrum og funktionsnavnet.
Scenario
Hver funktionsfil kan have flere scenarier, og hvert scenarie starter med Scenario: efterfulgt af scenarienavnet.
Baggrund
Nรธgleordet Background tilfรธjer kontekst til scenariet. Det kan indeholde trin, der deles af hvert scenarie; forskellen er, at disse trin kรธrer fรธr hvert scenarie.
I betragtning af
Nรธgleordet Given sรฆtter systemet i en kendt tilstand, fรธr brugeren begynder at interagere med det. Det definerer forudsรฆtningen eller konteksten:
Given I am on "/."
Nรฅr
Nรธgleordet When definerer den handling, som brugeren udfรธrer:
When I perform "Sign In."
Derefter
Nรธgleordet Then definerer det observerede resultat efter handlingen i trinnet When. Du bรธr kun verificere mรฆrkbare รฆndringer:
Then I should see "Welcome Tom."
Og & Men
Du kan have flere trin: Givet, Hvornรฅr eller Sรฅ. Nรธgleordene Og og Men tilfรธjer ekstra trin for at รธge lรฆsbarheden:
And I enter "EmailAddress" with "tomjohn@gmail.com." But I should see "Welcome Tom."
Givet, Nรฅr, Sรฅ, Og og Men er alle testtrin. Fortolkeren giver ikke en fejl, hvis du bytter om pรฅ dem, men scenariet vil ikke lรฆses fornuftigt, sรฅ brug hvert nรธgleord til dets tilsigtede formรฅl.
Eksempler pรฅ cornichoner
Eksempel 1: En loginfunktion til et socialt netvรฆrk.
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 analyserer hvert trin, der er skrevet i funktionsfilen, og trinnene i funktionsfilen skal stemme overens med dem i trindefinitionsfilen.
Eksempel 2: Et brugergodkendelsesscenarie med en baggrund.
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
De bedste fremgangsmรฅder ved brug af sylteagurk
- Hvert scenarie skal udfรธres separat og uafhรฆngigt.
- Hver funktion skal kunne eksekveres i sig selv.
- Trininformation skal vises uafhรฆngigt.
- Forbind dine scenarier med dine krav og track hvilke scenarier der hรธrer til hvert krav.
- Skab modulรฆre, letforstรฅelige trin, og kombiner almindelige scenarier.
- Beskriv hvad systemet gรธr, ikke hvordan det gรธr det.
Fordele ved cornichoner
- Gherkin er simpelt nok til, at ikke-programmรธrer kan forstรฅ det.
- Programmรธrer kan bruge det som et solidt grundlag for at starte deres tests.
- Det gรธr brugerhistorier lettere at fordรธje og mรฅlretter forretningskravene.
- Virksomhedsledere og udviklere kan begge lรฆse det samme script.
- Gherkin-testcases forbinder accepttests direkte med automatiserede tests.
- Skrivestilen gรธr det nemmere at genbruge kode pรฅ tvรฆrs af tests.
Ulemper ved cornichon
- Det krรฆver et hรธjt niveau af forretningsengagement og samarbejde.
- Det fungerer mรฅske ikke godt i alle scenarier.
- Dรฅrligt skrevne tests kan รธge omkostningerne til testvedligeholdelse.
