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.

  • ๐Ÿ“ Almindeligt sprog: Gherkin beskriver adfรฆrd, sรฅ ikke-programmรธrer kan lรฆse og skrive tests.
  • ???? Cucumber: Cucumber lรฆser .feature-filer og udfรธrer Gherkin-trinnene som tests.
  • ๐Ÿ”‘ Givet-Nรฅr-Sรฅ: Givet sรฆtter kontekst. Nรฅr udlรธser en handling, derefter hรฆvder resultatet.
  • ๐Ÿงฑ nรธgleord: Funktion, baggrund, scenarie, og og men strukturerer hvert scenarie.
  • โœ… Bedste praksis: Hold hvert scenarie uafhรฆngigt, og beskriv hvad, ikke hvordan.
  • ๐Ÿค– AI Assistance: AI-vรฆrktรธjer udarbejder Givet-Hvornรฅr-Sรฅ-scenarier ud fra almindelige krav.

Sylteagurksprog i Cucumber

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.

Ofte Stillede Spรธrgsmรฅl

BDD er en agil praksis, hvor teams beskriver forventet adfรฆrd i et letforstรฅeligt sprog, fรธr de koder. Gherkin-scenarier indfanger denne adfรฆrd, sรฅ forretnings- og tekniske medlemmer deler รฉn forstรฅelse.

Gherkin er den almindelige syntaks til at skrive scenarier. Cucumber er et af flere vรฆrktรธjer, der lรฆser Gherkin .feature-filer og udfรธrer trinnene mod din applikation.

En scenarieoversigt udfรธrer de samme trin med flere datasรฆt, der er angivet under en eksempeltabel. Den undgรฅr at duplikere et scenarie for hvert sรฆt af inputvรฆrdier.

En trindefinition knytter hvert Gherkin-trin til den kode, der kรธrer det. Cucumber lรฆser et trin, finder den den matchende definition og udfรธrer metoden mod applikationen.

De tre amigos er en produktejer, en udvikler og en tester, der gennemgรฅr en funktion sammen. Deres samlede syn pรฅ problemet skaber klarere og mere komplette Gherkin-scenarier end nogen enkelt rolle.

Udover Cucumber, Sylteagurk er stรธttet af SpecFlow til .NET og Behave til Python, blandt andre BDD-frameworks.

Ja. AI-assistenter omdanner en brugerhistorie til udkast til "Givet-When-Then"-scenarier, foreslรฅr kantscenarier og holder formuleringen konsistent, selvom en tester bรธr gennemgรฅ dem for nรธjagtighed.

AI-vรฆrktรธjer lรฆser enkle krav og automatiserer det fรธrste udkast af strukturerede "Givet-When-Sen"-trin. Dette fremskynder udarbejdelsen, men teams forfiner stadig formuleringen, sรฅ den matcher de faktiske acceptkriterier.

Opsummer dette indlรฆg med: