Gherkin jezik: sintaksa, format i primjeri

⚡ Pametni sažetak

Gherkin je poslovno čitljiv jezik koji opisuje ponašanje softvera bez detalja implementacije. Koristi ključne riječi Given, When i Then za definiranje Cucumber testni scenariji na jednostavnim jezikom, koji služe kao živa dokumentacija i kostur automatiziranih BDD testova.

  • 📝 Jednostavan jezik: Gherkin opisuje ponašanje kako bi i neprogrameri mogli čitati i pisati testove.
  • ???? Cucumber: Cucumber čita .feature datoteke i izvršava Gherkinove korake kao testove.
  • 🔑 Dano-Kada-Tada: Dano postavlja kontekst, Kada pokreće radnju, Zatim potvrđuje ishod.
  • 🧱 ključne riječi: Značajka, Pozadina, Scenarij, I i Ali strukturiraju svaki scenarij.
  • Najbolja vježba: Neka svaki scenarij bude nezavisan i opisujte što, a ne kako.
  • 🤖 AI pomoć: Alati umjetne inteligencije izrađuju scenarije Dano-Kada-Onda na temelju jednostavnih zahtjeva.

Jezik kornišona u Cucumber

Što je jezik kornišona?

Gherkin je poslovno čitljiv jezik koji vam pomaže opisati poslovno ponašanje bez ulaska u detalje implementacije. To je jezik specifičan za domenu za definiranje testova u Cucumber formatu. Koristi jednostavan jezik za opisivanje slučajeva upotrebe i omogućuje korisnicima uklanjanje logičkih detalja iz testova ponašanja.

Tekst u Gherkinu služi kao dokumentacija i kao kostur vaših automatiziranih testova. Gherkin format temelji se na TreeTop gramatici, koja postoji u više od 37 jezika, tako da možete pisati Gherkin na preko 37 govornih jezika. Skripta služi dvjema primarnim svrhama: dokumentira korisničke scenarije i pruža osnovu za pisanje automatiziranih BDD testova.

Zašto kornišon?

Bez zajedničkog, jednostavnog formata, poslovni i tehnički timovi različito opisuju zahtjeve, što uzrokuje nesporazume. Gherkin svima daje jedinstven, strukturiran vokabular koji se čita kao običan engleski, ali se izravno preslikava na izvršne testove.

Sintaksa kornišona

Gherkin je linijski orijentiran jezik, baš kao i YAML i PythonSvaki redak naziva se korak i počinje ključnom riječi. Tabulatori ili razmaci koriste se za uvlačenje. Komentar se može dodati bilo gdje, ali mora započeti znakom #. Interpreter čita svaki redak nakon uklanjanja ključnih riječi Gherkin kao što su Dano, Kada i Zatim.

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

Gherkin dokument ima ekstenziju .feature i jednostavno je testna datoteka s opisnom ekstenzijom. Cucumber čita Gherkin dokument i izvršava test kako bi provjerio ponaša li se softver onako kako opisuje Gherkinova sintaksa.

Važni pojmovi koji se koriste u kiselim krastavcima

Glavne ključne riječi su Značajka, Pozadina, Scenarij, Dano, Kada, Tada, I, Ali i Struktura scenarija. Cucumber nema stroga pravila imenovanja, ali jasna konvencija imenovanja pomaže.

svojstvo

Datoteka treba imati ekstenziju .feature, a svaka datoteka značajki treba opisivati ​​samo jednu značajku. Ključna riječ Feature počinje s značajka: nakon čega slijedi razmak i naziv značajke.

scenario

Svaka datoteka značajki može imati više scenarija, a svaki scenarij počinje s Scenarij: nakon čega slijedi naziv scenarija.

pozadina

Ključna riječ Background dodaje kontekst scenariju. Može sadržavati korake koje dijeli svaki scenarij; razlika je u tome što se ti koraci izvršavaju prije svakog scenarija.

S obzirom

Ključna riječ Given stavlja sustav u poznato stanje prije nego što korisnik počne komunicirati s njim. Definira preduvjet ili kontekst:

Given I am on "/."

Kada

Ključna riječ When definira radnju koju korisnik izvršava:

When I perform "Sign In."

Tada

Ključna riječ Then definira ishod koji se opaža nakon akcije u koraku When. Trebali biste provjeriti samo uočljive promjene:

Then I should see "Welcome Tom."

I & Ali

Možete imati više koraka Dano, Kada ili Zatim. Ključne riječi I i Ali dodaju dodatne korake za čitljivost:

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

Dano, Kada, Zatim, I i Ali su sve koraci testiranja. Interpretator ne izbacuje grešku ako ih zamijenite, ali scenarij se neće čitati razumno, stoga koristite svaku ključnu riječ za njezinu namjenu.

Primjeri kornišona

Primjer 1: Funkcija prijave za stranicu društvene mreže.

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 analizira svaki korak zapisan u datoteci značajki, a koraci u datoteci značajki moraju se podudarati s onima u datoteci definicije koraka.

Primjer 2: Scenarij autentifikacije korisnika s pozadinom.

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

Najbolje prakse korištenja kiselih krastavaca

  • Svaki scenarij treba se izvršavati zasebno i neovisno.
  • Svaka značajka treba biti izvršna sama za sebe.
  • Informacije o koracima trebaju se prikazivati ​​neovisno.
  • Povežite svoje scenarije sa svojim zahtjevima i track koji scenariji pripadaju svakom zahtjevu.
  • Stvorite modularne, lako razumljive korake i kombinirajte uobičajene scenarije.
  • Opišite što sustav radi, a ne kako to radi.

Prednosti kornišona

  • Gherkin je dovoljno jednostavan da ga razumiju i neprogrameri.
  • Programeri ga mogu koristiti kao solidnu osnovu za početak svojih testova.
  • Olakšava razumijevanje korisničkih priča i cilja na poslovne zahtjeve.
  • Poslovni rukovoditelji i programeri mogu čitati isti scenarij.
  • Gherkinovi testni slučajevi izravno povezuju testove prihvatljivosti s automatiziranim testovima.
  • Stil pisanja olakšava ponovnu upotrebu koda u različitim testovima.

Nedostaci kornišona

  • To zahtijeva visoku razinu poslovnog angažmana i suradnje.
  • Možda neće dobro funkcionirati u svakom scenariju.
  • Loše napisani testovi mogu povećati troškove održavanja testova.

Pitanja i odgovori

BDD je agilna praksa u kojoj timovi opisuju očekivano ponašanje jednostavnim jezikom prije kodiranja. Gherkinovi scenariji bilježe to ponašanje tako da poslovni i tehnički članovi dijele jedno razumijevanje.

Gherkin je sintaksa jednostavnog jezika za pisanje scenarija. Cucumber je jedan od nekoliko alata koji čitaju Gherkin .feature datoteke i izvršavaju korake u vašoj aplikaciji.

Nacrt scenarija izvodi iste korake s više skupova podataka navedenih u tablici primjera. Izbjegava dupliciranje scenarija za svaki skup ulaznih vrijednosti.

Definicija koraka preslikava svaki Gherkinov korak u kod koji ga izvršava. Kada Cucumber čita korak, pronalazi odgovarajuću definiciju i izvršava tu metodu u aplikaciji.

Tri prijatelja su vlasnik proizvoda, programer i tester koji zajedno pregledavaju značajku. Njihov zajednički pogled stvara jasnije i cjelovitije Gherkinove scenarije od bilo koje pojedinačne uloge.

Osim toga Cucumber, Gherkin ima podršku SpecFlow za .NET i Behave za Python, između ostalih BDD okvira.

Da. AI asistenti pretvaraju korisničku priču u nacrte scenarija "Dano-Kada-Onda", predlažu rubne slučajeve i održavaju dosljednost formulacija, iako bi ih tester trebao pregledati radi točnosti.

Alati umjetne inteligencije čitaju jednostavne zahtjeve i automatiziraju prvi nacrt strukturiranih koraka tipa "Dano-Kada-Zatim". To ubrzava autorstvo, ali timovi i dalje usavršavaju formulacije kako bi odgovarale stvarnim kriterijima prihvaćanja.

Sažmite ovu objavu uz: