Gherkin jezik: Format, sintaksa i Gherkin test u Cucumber

Što je jezik kornišona?

Gherkin je poslovno čitljiv jezik koji vam pomaže da opišete poslovno ponašanje bez ulaženja u detalje implementacije. To je domenski specifičan jezik za definiranje testova Cucumber format za specifikacije. Koristi jednostavan jezik za opisivanje slučajeva upotrebe i omogućuje korisnicima uklanjanje logičkih detalja iz testova ponašanja.

Tekst na Gherkin jeziku služi kao dokumentacija i kostur vaših automatiziranih testova. Gherkin format temelji se na TreeTop gramatici koja postoji na više od 37 jezika. Stoga svoj kornišon možete napisati na više od 37 jezika.

Ova skripta ima dvije primarne svrhe:

  • Dokumentira korisničke scenarije
  • Pisanje automatiziranog testa (BDD)

Zašto kornišon?

Potreba za kornišonom može se lako objasniti sljedećim slikama

Prije kornišona

Prije kornišona

Nakon kornišona

Nakon kornišona

Sintaksa kornišona

Gherkin je linijski orijentirani jezik poput YAML-a i Python. Svaki redak naziva se korak i počinje ključnom riječi, a kraj terminala zaustavljanjem. Tabulator ili razmak koriste se za uvlačenje.

U ovoj skripti komentar se može dodati gdje god želite, ali bi trebao započeti znakom #. Čitao je svaki redak nakon uklanjanja Ghrekinovih ključnih riječi kako su dane, kada, tada itd.

Tipični koraci za kornišon izgledaju ovako

Gherkin Scripts: povezuje ljudski koncept uzroka i posljedice sa softverskim konceptom ulaza/procesa/izlaza.

Sintaksa kornišona

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

Gherkin dokument ima ekstenziju .feature i jednostavno samo testnu datoteku s otmjenom ekstenzijom. Cucumber čita Gherkin dokument i izvršava test za potvrdu da se softver ponaša prema Gherkin sintaksi.

Važni pojmovi koji se koriste u kornišonu

  • svojstvo
  • pozadina
  • scenario
  • S obzirom
  • Kada
  • Tada
  • I
  • Ali
  • Primjeri nacrta scenarija

Za naziv značajke koristi se konvencija imenovanja. Međutim, ne postoje određena pravila Cucumber o imenima.

svojstvo

Datoteka treba imati ekstenziju .feature i svaka datoteka značajki treba imati samo jednu značajku. Ključna riječ značajke je sa Značajkom: i nakon toga dodatka bit će napisan razmak i naziv značajke.

scenario

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

pozadina

Pozadinska ključna riječ pomaže vam da dodate kontekst scenariju. Može sadržavati neke korake scenarija, ali jedina je razlika što se treba pokrenuti prije svakog scenarija.

S obzirom

Upotreba ključne riječi Given je stavljanje sustava u poznato stanje prije nego što korisnik počne komunicirati sa sustavom. Međutim, možete izostaviti pisanje korisničkih interakcija u Danim koracima ako su Dani u koraku "Preduvjet".

Sintaksa:

Given
Given - a test step that defines the 'context
Given I am on "/."

Kada

Kada je korak definiranje radnje koju izvodi korisnik.

Sintaksa:

When
A When - a test step that defines the 'action' performed
When I perform "Sign In."

Tada

Upotreba ključne riječi 'then' je vidjeti ishod nakon radnje u kojem koraku. Međutim, možete provjeriti samo primjetne promjene.

Sintaksa:

 Then
Then - test step that defines the 'outcome.'
Then I should see "Welcome Tom."

I & Ali

Možete imati višestruko dano kada ili Tada.

Sintaksa:

But
A But - additional test step which defines the 'action' 'outcome.'
But I should see "Welcome Tom."
And - additional test step that defines the 'action' performed
And I write  "EmailAddress" with "Tomjohn@gmail.com."

S obzirom, kada, tada i, ali su testni koraci. Možete ih koristiti naizmjenično. Tumač ne prikazuje nikakvu grešku. Međutim, one sigurno neće imati nikakvog 'smisla' kada ih pročitate.

Važni pojmovi koji se koriste u kornišonu
Važni pojmovi koji se koriste u kornišonu
Given The login page is opening
When I input username, password and click the Login button 
Then I am on the Homepage

Primjeri kornišona

Primjer 1:

Feature:  Login functionality of social networking site Facebook. 
Given:  I am a facebook user. 
When: I enter username as username. 
And I enter the password as the password 
Then I should be redirected to the home page of facebook 

Gore spomenuti scenarij odnosi se na značajku koja se zove prijava korisnika.

Gherkin će analizirati svaki korak zapisan u datoteci za definiciju koraka. Stoga su koraci dani u datoteci značajki i datoteka definicije koraka trebala bi odgovarati.

Primjer 2:

Feature: User Authentication Background:
Given the user is already registered to the website Scenario:
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
And the user should be presented with a success message 

Najbolje prakse korištenja kornišona

  • Svaki scenarij treba izvesti zasebno
  • Svaka značajka trebala bi se moći izvršiti zajedno
  • Informacije o koracima trebaju biti prikazane neovisno
  • Povežite svoje scenarije sa svojim zahtjevima
  • Pratite sve scenarije koji bi trebali biti uključeni u zahtjevni dokument
  • Stvorite modularne i lako razumljive korake
  • Pokušajte kombinirati sve svoje uobičajene scenarije

Prednosti kornišona

  • Gherkin je dovoljno jednostavan da ga razumiju i neprogrameri
  • Programeri ga mogu koristiti kao vrlo solidnu osnovu za početak svojih testova
  • Čini korisničke priče lakšim za probavu
  • Gherkin skriptu mogu lako razumjeti poslovni rukovoditelji i programeri
  • Testiranje kornišona cilja na poslovne zahtjeve
  • Značajan dio funkcionalnih specifikacija napisan je kao priče korisnika
  • Ne morate biti stručnjak da biste razumjeli mali skup naredbi Gherkin
  • Gherkin testni slučajevi povezuju testove prihvaćanja izravno s automatiziranim testovima
  • Stil pisanja testova slučajevi su lakši za ponovnu upotrebu koda u drugim testovima

Nedostaci kornišona

  • Zahtijeva visoku razinu poslovnog angažmana i suradnje
  • Možda neće dobro funkcionirati u svim scenarijima
  • Loše napisani testovi mogu lako povećati troškove održavanja testa

Rezime

  • Gherkin je format za specifikacije krastavaca
  • Gherkin je linijski orijentirani jezik poput YAML-a i Python
  • Gherkin Scripts povezuje ljudski koncept uzroka i posljedice sa softverskim konceptom ulaza/procesa i izlaza
  • Feature, Background, Scenario, Given, When, Then, And But važno se koriste u Gherkinu
  • U Gherkinu bi se svaki scenarij trebao izvršiti zasebno
  • Najveća prednost Gherkina je dovoljno jednostavna da je razumiju i neprogrameri
  • Test kornišona možda neće dobro funkcionirati u svim vrstama scenarija