Gherkin Language: format, sintaxă și test Gherkin în Cucumber

Ce este limbajul corniței?

Castravecior este un limbaj ușor de citit pentru afaceri, care vă ajută să descrieți comportamentul de afaceri fără a intra în detalii despre implementare. Este un limbaj specific domeniului pentru definirea testelor în Cucumber format pentru specificații. Folosește un limbaj simplu pentru a descrie cazurile de utilizare și permite utilizatorilor să elimine detaliile logice din testele de comportament.

Textul în limbajul Gherkin acționează ca documentație și schelet al testelor dumneavoastră automate. Formatul Gherkin se bazează pe TreeTop Grammar, care există în peste 37 de limbi. Prin urmare, vă puteți scrie cornișul în peste 37 de limbi vorbite.

Acest script servește două scopuri principale:

  • Documentează scenariile utilizatorilor
  • Scrierea unui test automat (BDD)

De ce Cornița?

Necesitatea Gherkin poate fi explicată cu ușurință prin următoarele imagini

Înainte de Corniș

Înainte de Corniș

După Cornița

După Cornița

Sintaxa Gherkin

Gherkin este un limbaj orientat pe linii la fel ca YAML și Python. Fiecare linie numită pas și începe cu cuvântul cheie și sfârșitul terminalelor cu o oprire. Tabulația sau spațiul sunt folosite pentru indentare.

În acest script, un comentariu poate fi adăugat oriunde doriți, dar ar trebui să înceapă cu semnul #. A citit fiecare rând după ce a eliminat cuvintele cheie ale lui Ghrekin așa cum sunt date, când, atunci etc.

Pașii tipici de Corniș arată ca

Gherkin Scripts: conectează conceptul uman de cauză și efect la conceptul software de intrare/proces/ieșire.

Sintaxa Gherkin

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

Un document Gherkin are o extensie .feature și pur și simplu un fișier de testare cu o extensie fantezică. Cucumber citește documentul Gherkin și execută un test pentru a valida că software-ul se comportă conform sintaxei Gherkin.

Termeni importanți folosiți în Gherkin

  • Caracteristică
  • Context
  • Scenariu
  • Dat
  • Cand
  • "Atunci
  • Și
  • dar
  • Exemple de schiță de scenariu

Convenția de denumire este folosită pentru numele caracteristicii. Cu toate acestea, nu există reguli stabilite în Cucumber despre nume.

Caracteristică

Fișierul ar trebui să aibă extensia .feature și fiecare fișier de caracteristici ar trebui să aibă o singură caracteristică. Cuvântul cheie caracteristică fiind cu Caracteristica: și după aceea adăugare, se vor scrie un spațiu și numele caracteristicii.

Scenariu

Fiecare fișier de caracteristici poate avea mai multe scenarii și fiecare scenariu începe cu Scenariu: urmat de numele scenariului.

Context

Cuvântul cheie de fundal vă ajută să adăugați un context scenariului. Poate conține câțiva pași ai scenariului, dar singura diferență este că ar trebui să fie rulat înainte de fiecare scenariu.

Dat

Utilizarea cuvântului cheie dat este de a pune sistemul într-o stare familiară înainte ca utilizatorul să înceapă să interacționeze cu sistemul. Cu toate acestea, puteți omite scrierea interacțiunilor utilizatorului în pașii Dați dacă Dați în pasul „Precondiție”.

Sintaxă:

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

Cand

Când pasul este definirea acțiunii efectuate de utilizator.

Sintaxă:

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

"Atunci

Utilizarea cuvântului cheie „atunci” este pentru a vedea rezultat după acţiunea în când pas. Cu toate acestea, puteți verifica doar modificări vizibile.

Sintaxă:

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

Și dar

Este posibil să aveți mai multe date când sau Atunci.

Sintaxă:

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

Dat, Când, Atunci și, dar sunt pași de testare. Le puteți folosi interschimbabil. Interpretul nu afișează nicio eroare. Cu toate acestea, cu siguranță nu vor avea niciun „sens” atunci când vor fi citite.

Termeni importanți folosiți în Gherkin
Termeni importanți folosiți în Gherkin
Given The login page is opening
When I input username, password and click the Login button 
Then I am on the Homepage

Exemple de cornibii

Exemplu 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 

Scenariul menționat mai sus este al unei caracteristici numite autentificare utilizator.

Gherkin va analiza fiecare pas scris în fișierul de definire a pasului. Prin urmare, pașii sunt dați în fișierul de caracteristici și fișierul de definire a pasului ar trebui să se potrivească.

Exemplu 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 

Cele mai bune practici de utilizare a Gherkin

  • Fiecare scenariu ar trebui să fie executat separat
  • Fiecare caracteristică ar trebui să poată fi executată
  • Informațiile despre pași ar trebui afișate independent
  • Conectați scenariul dvs. cu cerințele dvs
  • Păstrați o evidență completă a scenariilor care ar trebui incluse într-un document de cerințe
  • Creați pași modulari și ușor de înțeles
  • Încercați să combinați toate scenariile comune

Avantajele Cornișului

  • Gherkin este suficient de simplu pentru a înțelege non-programatorii
  • Programatorii îl pot folosi ca bază foarte solidă pentru a-și începe testele
  • Face poveștile utilizatorilor mai ușor de digerat
  • Scriptul Gherkin poate fi ușor de înțeles de directorii de afaceri și dezvoltatori
  • Gherkin Testing vizează cerințele afacerii
  • O parte semnificativă a specificațiilor funcționale este scrisă ca povești de utilizator
  • Nu trebuie să fii expert pentru a înțelege setul mic de comenzi Gherkin
  • Cazurile de testare Gherkin leagă testele de acceptare direct la testele automate
  • Stilul de scriere a cazurilor de teste este mai ușor de reutilizat codul în alte teste

Dezavantajele Cornișului

  • Necesită un nivel ridicat de implicare în afaceri și colaborări
  • Este posibil să nu funcționeze bine în toate scenariile
  • Testele scrise prost pot crește cu ușurință costurile de întreținere a testelor

Rezumat

  • Cornișul este formatul pentru specificațiile castraveților
  • Gherkin este un limbaj orientat pe linii la fel ca YAML și Python
  • Gherkin Scripts conectează conceptul uman de cauză și efect cu conceptul software de intrare/proces și ieșire
  • Caracteristică, Fundal, Scenariu, Data, Când, Atunci și Dar sunt folosite în mod important în Gherkin
  • În Gherkin, fiecare scenariu ar trebui să se execute separat
  • Cel mai mare avantaj al Gherkin este suficient de simplu pentru ca non-programatorii să îl înțeleagă
  • Testul Gherkin poate să nu funcționeze bine în toate tipurile de scenarii