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
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.
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