Kurgi keel: süntaks, vorming ja näited

⚡ Nutikas kokkuvõte

Gherkin on äriliselt loetav keel, mis kirjeldab tarkvara käitumist ilma implementatsiooni üksikasjadeta. See kasutab Given, When ja Then märksõnu, et defineerida Cucumber lihtsas keeles esitatud testistsenaariumid, mis toimivad elava dokumentatsioonina ja automatiseeritud BDD-testide skeletina.

  • 📝 Lihtkeel: Gherkin kirjeldab käitumist, et mitteprogrammeerijad saaksid teste lugeda ja kirjutada.
  • 🥒 Cucumber: Cucumber loeb .feature-faile ja käivitab Gherkini samme testidena.
  • 🔑 Antud-millal-siis: Antud seab konteksti, Kui käivitab tegevuse, siis kinnitab tulemust.
  • 🧱 Märksõnad: Funktsioon, Taust, Stsenaarium, Ja ja Aga struktureerivad iga stsenaariumi.
  • Parim harjutus: Hoidke iga stsenaarium iseseisvana ja kirjeldage, mida, mitte kuidas.
  • 🤖 AI abi: Tehisintellekti tööriistad koostavad antud-millal-siis stsenaariume lihtsate nõuete põhjal.

Kurgikeel Cucumber

Mis on kornišoni keel?

Kornišon on äriliselt loetav keel, mis aitab teil kirjeldada ettevõtte käitumist ilma rakenduse üksikasjadesse laskumata. See on valdkonnapõhine keel testide defineerimiseks Cucumber vormingus. See kirjeldab kasutusjuhtumeid lihtsas keeles ja võimaldab kasutajatel käitumistestidest loogilisi detaile eemaldada.

Gherkini tekst toimib dokumentatsioonina ja teie automatiseeritud testide skeletina. Gherkini formaat põhineb TreeTop Grammaril, mis eksisteerib enam kui 37 keeles, seega saate Gherkinit kirjutada enam kui 37 kõnekeeles. Skriptil on kaks peamist eesmärki: see dokumenteerib kasutaja stsenaariume ja pakub aluse automatiseeritud BDD-testide kirjutamiseks.

Miks Gherkin?

Ilma ühise ja lihtsa keelega vorminguta kirjeldavad äri- ja tehnilised meeskonnad nõudeid erinevalt, mis põhjustab arusaamatusi. Gherkin annab kõigile ühtse struktureeritud sõnavara, mis kõlab nagu tavaline inglise keel, kuid on otse seotud käivitatavate testidega.

Gherkini süntaks

Gherkin on ridadele orienteeritud keel, nagu YAML ja PythonIga rida nimetatakse sammuks ja see algab märksõnaga. Tabulaatoreid või tühikuid kasutatakse taande jaoks. Kommentaari saab lisada ükskõik kuhu, kuid see peab algama märgiga #. Tõlgendab programmi ja loeb iga rea ​​​​pärast Gherkini märksõnade (nt Given, When ja Then) eemaldamist.

Feature: Title of the Scenario
  Given [Preconditions or Initial Context]
  When [Event or Trigger]
  Then [Expected output]

Gherkini dokumendil on laiend .feature ja see on lihtsalt kirjeldava laiendiga testfail. Cucumber loeb Gherkini dokumenti ja käivitab testi, et kontrollida, kas tarkvara käitub Gherkini süntaksi kirjelduse kohaselt.

Olulised terminid, mida kasutatakse kurgis

Peamised märksõnad on tunnus, taust, stsenaarium, antud, millal, siis, ja, aga ja stsenaariumi ülevaade. Cucumber puuduvad ranged nimetamisreeglid, kuid selge nimetamiskonventsioon on abiks.

tunnusjoon

Failil peaks olema laiend .feature ja iga funktsioonifail peaks kirjeldama ainult ühte funktsiooni. Märksõna „Feature” algab tähega Motiiv: millele järgneb tühik ja funktsiooni nimi.

Stsenaarium

Igal funktsioonifailil võib olla mitu stsenaariumi ja iga stsenaarium algab järgmisega: Stsenaarium: millele järgneb stsenaariumi nimi.

Taust

Märksõna „Background” lisab stsenaariumile konteksti. See võib sisaldada samme, mida jagavad kõik stsenaariumid; erinevus seisneb selles, et need sammud käivituvad enne iga stsenaariumi.

antud

Märksõna Given viib süsteemi teadaolevasse olekusse enne, kui kasutaja sellega suhtlema hakkab. See määratleb eeltingimuse ehk konteksti:

Given I am on "/."

Kui

Märksõna „When” määratleb kasutaja tehtava toimingu:

When I perform "Sign In."

Siis

Märksõna „Then“ määratleb tulemuse, mida täheldatakse pärast toimingut „When“ etapis. Kontrollida tuleks ainult märgatavaid muutusi:

Then I should see "Welcome Tom."

Ja & Aga

Teil võib olla mitu Given (antud), When (millal) või Then (siis) sammu. Märksõnad And (ja) ja But (aga) lisavad loetavuse parandamiseks täiendavaid samme:

And I enter "EmailAddress" with "tomjohn@gmail.com."
But I should see "Welcome Tom."

Arvestades, et When, Then, And ja But on kõik testimisetapid. Interpretaator ei tekita nende vahetamisel viga, kuid stsenaarium ei loeta mõistlikult, seega kasutage iga märksõna ettenähtud otstarbel.

Kornišonide näited

Näide 1: Sotsiaalvõrgustiku saidi sisselogimisfunktsioon.

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 analüüsib iga funktsioonifailis olevat sammu ning funktsioonifailis olevad sammud peavad vastama sammu definitsioonifailis olevatele sammudele.

Näide 2: Kasutaja autentimise stsenaarium taustaga.

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

Gherkini kasutamise parimad tavad

  • Iga stsenaarium peaks toimima eraldi ja sõltumatult.
  • Iga funktsioon peaks olema iseseisvalt käivitatav.
  • Sammude kohta tuleks teavet kuvada eraldi.
  • Seo oma stsenaariumid oma vajadustega ja track millised stsenaariumid iga nõude alla kuuluvad.
  • Loo modulaarseid ja hõlpsasti mõistetavaid samme ning kombineeri tavalisi stsenaariume.
  • Kirjelda, mida süsteem teeb, mitte kuidas see toimib.

Gherkini eelised

  • Gherkin on piisavalt lihtne, et ka mitteprogrammeerijad sellest aru saaksid.
  • Programmeerijad saavad seda kasutada kindla alusena oma testide alustamiseks.
  • See muudab kasutajalood kergemini seeditavaks ja vastab ärivajadustele.
  • Nii ärijuhid kui ka arendajad saavad sama skripti lugeda.
  • Gherkini testijuhtumid seovad vastuvõtutestid otse automatiseeritud testidega.
  • Kirjutamisstiil lihtsustab koodi taaskasutamist testides.

Gherkini puudused

  • See nõuab kõrgetasemelist ärilist kaasatust ja koostööd.
  • See ei pruugi igas stsenaariumis hästi toimida.
  • Halvasti kirjutatud testid võivad suurendada testide hoolduskulusid.

KKK

BDD on agiilne praktika, kus meeskonnad kirjeldavad eeldatavat käitumist lihtsas keeles enne kodeerimist. Gherkini stsenaariumid jäädvustavad selle käitumise, et äri- ja tehnilised liikmed saaksid ühise arusaama.

Gherkin on stsenaariumide kirjutamise lihtkeele süntaks. Cucumber on üks mitmest tööriistast, mis loeb Gherkin .feature faile ja käivitab teie rakenduses samme.

Stsenaariumi ülevaade läbib samu samme mitme näidete tabelis loetletud andmekogumiga. See väldib stsenaariumi dubleerimist iga sisendväärtuste komplekti jaoks.

Sammudefinitsioon seob iga Gherkini sammu koodiga, mis seda käivitab. Millal Cucumber loeb sammu, leiab sobiva definitsiooni ja käivitab selle meetodi rakenduses.

Kolm amigot on tooteomanik, arendaja ja testija, kes koos funktsiooni üle vaatavad. Nende ühine vaade loob selgemad ja terviklikumad Gherkini stsenaariumid kui ükski üksik roll.

Peale Cucumber, Gherkinit toetab SpecFlow .NET ja Behave jaoks Python, teiste BDD raamistike hulgas.

Jah. Tehisintellekti assistendid muudavad kasutajaloo antud-millal-siis-stsenaariumide mustanditeks, pakuvad välja äärmusjuhtumeid ja hoiavad sõnastuse järjepidevana, kuigi testija peaks need täpsuse osas üle vaatama.

Tehisintellekti tööriistad loevad lihtsaid nõudeid ja automatiseerivad struktureeritud antud-millal-siis-sammude esimese mustandi. See kiirendab autoriõigust, kuid meeskonnad täpsustavad sõnastust ikkagi, et see vastaks tegelikele vastuvõtukriteeriumidele.

Võta see postitus kokku järgmiselt: