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