Hva er Gherkin Language?
Gherkin er et lesbart språk som hjelper deg med å beskrive forretningsatferd uten å gå nærmere inn på implementeringen. Det er et domenespesifikt språk for å definere tester i agurkformat for spesifikasjoner. Den bruker vanlig språk for å beskrive brukstilfeller og lar brukerne fjerne logikkdetaljer fra atferdstester.
Teksten i Gherkin langauge fungerer som dokumentasjon og skjelett til dine automatiserte tester. Agurkformat er basert på TreeTop-grammatikk som finnes på 37+ språk. Derfor kan du skrive din agurk på mer enn 37 språk.
Dette skriptet har to hovedformål:
- Dokumenter bruker scenarier
- Skrive en automatisert test (BDD)
I denne Gherkin-opplæringen vil du lære
- Hva er Gherkin Language?
- Hvorfor agurk?
- Gherkin Syntax
- Viktige begreper brukt i Gherkin
- Gurkjeeksempel
- Beste fremgangsmåter for bruk av agurk
- Fordeler med agurk
Hvorfor agurk?
Behovet for agurk kan lett forklares ved å følge bilder
Før agurk
Etter agurk
Gherkin Syntax
Gherkin er linjeorientert språk akkurat som YAML og Python. Hver linje kalt trinn og starter med nøkkelord og slutten av terminalene med et stopp. Tab eller mellomrom brukes til innrykk.
I dette skriptet kan en kommentar legges til hvor som helst du vil, men den skal starte med et # -tegn. Den leste hver linje etter at Ghrekins nøkkelord ble fjernet som gitt, når, da osv.
Typiske agurkesteg ser ut som:
Gherkin Scripts: kobler det menneskelige begrepet årsak og virkning til programvarekonseptet input / process / output.
Agurkesyntaks:
Funksjon: Tittel på scenarietGitt [Forutsetninger eller innledende kontekst]Når [hendelse eller utløser]Deretter [forventet utgang]
Et Gherkin-dokument har en utvidelse .funksjon og rett og slett bare en testfil med en fancy utvidelse. Agurk les Gherkin-dokumentet og utfører en test for å validere at programvaren oppfører seg i henhold til Gherkin-syntaksen.
Viktige begreper brukt i Gherkin
- Trekk
- Bakgrunn
- Scenario
- Gitt
- Når
- Deretter
- Og
- Men
- Eksempler på scenariske omriss
Navngivningskonvensjonen brukes til funksjonsnavn. Imidlertid er det ingen faste regler i agurk om navn.
Trekk:
Filen skal ha utvidelse .feature, og hver funksjonsfil skal bare ha en funksjon. Funksjonsnøkkelordet er med funksjonen: og etter det legges til, vil det bli skrevet et mellomrom og navn på funksjonen.
Scenario:
Hver funksjonsfil kan ha flere scenarier, og hvert scenario starter med Scenario: etterfulgt av scenarionavn.
Bakgrunn:
Bakgrunnsnøkkelord hjelper deg med å legge til litt sammenheng i scenariet. Den kan inneholde noen trinn i scenariet, men den eneste forskjellen er at den skal kjøres før hvert scenario.
Gitt:
Bruken av Gitt nøkkelord er å sette systemet i en kjent tilstand før brukeren begynner å samhandle med systemet. Du kan imidlertid utelate å skrive brukerinteraksjoner i gitte trinn hvis gitt i trinnet "Forutsetning".
Syntaks:
Gitt
Gitt - et teststrinn som definerer kontekstenGitt at jeg er på "/."
Når:
Når trinnet er å definere handlinger utført av brukeren.
Syntaks:
Når
A Når - et testtrinn som definerer den utførte 'handlingen'Når jeg utfører "Logg inn."
Deretter:
Bruken av 'deretter' nøkkelord er å se resultatet etter handlingen i når trinn. Du kan imidlertid bare bekrefte merkbare endringer.
Syntaks:
Deretter
Deretter - testtrinn som definerer 'utfallet'.Så skulle jeg se "Velkommen Tom."
Og men
Du kan ha flere gitt når eller deretter.
Syntaks:
Men
A Men - ytterligere testtrinn som definerer 'handlings' utfallet. 'Men jeg skulle se "Velkommen Tom."
Og - ytterligere testtrinn som definerer "utført handling"Og jeg skriver "EmailAddress" med " Denne e-postadressen er beskyttet mot programmer som samler e-postadresser. Du må aktivere JavaScript for å kunne se adressen ..."
Gitt, Når, Da og, men er teststrinn. Du kan bruke dem om hverandre. Tolken viser ingen feil. Imidlertid vil de sikkert ikke gi noen "mening" når de leses.

Viktige begreper brukt i Gherkin
Gitt Innloggingssiden åpnesNår jeg skriver inn brukernavn, passord og klikker på Logg inn-knappenSå er jeg på hjemmesiden
Eksempler på agurk
Eksempel 1:
Funksjon: Påloggingsfunksjonalitet på det sosiale nettverkssiden Facebook.Gitt: Jeg er en facebook-bruker.Når: Jeg skriver inn brukernavn som brukernavn.Og jeg skriver inn passordet som passordDa burde jeg bli omdirigert til hjemmesiden til facebook
Scenariet nevnt ovenfor er av en funksjon som heter brukerinnlogging.
Alle ord skrevet med fet skrift er nøkkelord.
Gherkin vil analysere hvert trinn skrevet i trinndefinisjonsfilen. Derfor er trinnene gitt i funksjonsfilen, og trinndefinisjonsfilen skal samsvare.
Eksempel 2:
Funksjon: Brukergodkjenning Bakgrunn:Gitt at brukeren allerede er registrert på nettstedet Scenario:Gitt brukeren er på påloggingssidenNår brukeren skriver inn riktig e-postadresseOg brukeren skriver inn riktig passordOg brukeren klikker på Logg inn-knappenDa skal brukeren være autentisertOg brukeren skal omdirigeres til dashbordetOg brukeren skal få en suksessmelding
Beste fremgangsmåter for bruk av agurk
- Hvert scenario skal utføres separat
- Hver funksjon skal kunne kjøres sammen
- Trinninformasjon skal vises uavhengig
- Koble scenariene dine til dine behov
- Hold oversikt over hvilke scenarier som skal inkluderes i et kravdokument
- Lag modulære og lettfattelige trinn
- Prøv å kombinere alle vanlige scenarier
Fordeler med agurk
- Agurk er enkelt nok til at ikke-programmerere kan forstå
- Programmører kan bruke det som en veldig solid base for å starte testene
- Det gjør brukerhistorier lettere å fordøye
- Gherkin-skript kan lett forstås av forretningsledere og utviklere
- Gherkin Testing retter seg mot forretningskravene
- En betydelig andel av funksjonsspesifikasjonene er skrevet som brukerhistorier
- Du trenger ikke å være ekspert for å forstå det lille Gherkin-kommandosettet
- Gherkin Test-tilfeller knytter akseptstester direkte til automatiserte tester
- Det er lettere å bruke kode i andre tester for å skrive tester
Ulemper med agurk
- Det krever et høyt nivå av forretningsengasjement og samarbeid
- Fungerer kanskje ikke bra i alle scenarier
- Dårlig skrevne tester kan enkelt øke testvedlikeholdskostnadene
Sammendrag:
- Agurk er formatet for agurkspesifikasjoner
- Gherkin er linjeorientert språk akkurat som YAML og Python
- Gherkin Scripts kobler det menneskelige begrepet årsak og virkning til programvarekonseptet input / prosess og output
- Funksjon, bakgrunn, scenario, gitt, når, da og men er viktigst brukt i agurk
- I Gherkin skal hvert scenario utføres separat
- Den største fordelen med Gherkin er enkel nok for ikke-programmerere å forstå
- Gherkin Test fungerer kanskje ikke bra i alle typer scenarier