Ce Este Cucumber Fișier de caracteristici și definiție a pasului? (Exemplu)
⚡ Rezumat inteligent
Cucumber fișierele de caracteristici descriu comportamentul în limbaj simplu Gherkin, în timp ce definițiile pașilor conțin codul care rulează fiecare linie. Fiecare Cucumber Proiectul are nevoie de ambele, stocate într-un layout fix de foldere sub un director de caracteristici.
Pentru fiecare proiect cucumber există un singur director la rădăcina proiectului numit „features”. Aici vor fi toate caracteristicile cucumber. În acest director veți găsi directoare suplimentare, și anume directoarele step_definition și support.
Aspectul contează, deoarece Cucumber descoperă fișierele prin convenție, nu prin configurație. Un fișier de caracteristici care se află în afara directorului de caracteristici pur și simplu nu este niciodată citit.
Ce este „Fișierul de caracteristici”?
Fișierul de caracteristici conține o descriere de nivel înalt a Scenariu de testare în limbaj simplu. Este cunoscut sub numele de CastraveciorGherkin este un limbaj de text în limba engleză simplă.
Cucumber Fișierul de caracteristici este format din următoarele componente —
- Caracteristică: O caracteristică ar descrie scriptul de testare curent care trebuie executat.
- Scenariu: Scenariul descrie pașii și rezultatul așteptat pentru un anumit caz de testare.
- Schița scenariului: Același scenariu poate fi executat pentru mai multe seturi de date folosind schița scenariului. Datele sunt furnizate printr-o structură tabelară separată prin (II).
- Dat: Specifică contextul textului care urmează să fie executat. Prin utilizarea tabelelor de date „Given”, pasul poate fi, de asemenea, parametrizat.
- Atunci când„Când” specifică acțiunea de testare care trebuie efectuată.
- "Atunci Rezultatul așteptat al testului poate fi reprezentat prin „Atunci”.
Un fișier conține o singură caracteristică. Scenariile de sub acesta sunt exemple concrete care ilustrează caracteristica, iar fiecare scenariu urmează același ritm: descrierea unui context de pornire, descrierea unui eveniment, descrierea rezultatului așteptat.
În continuare, vom învăța cum să scriem fișierul de caracteristici în Cucumber cu exemplu.
Exemplu de fișier cu caracteristici:
Exemplul original publicat împreună cu acest tutorial este reprodus mai jos exact așa cum este scris.
Feature: Visit career guide page in career.guru99.com Scenario: Visit career.guru99.com Given: I am on career.guru99.com When: I click on career guide menu Then: I should see career guide page
⚠️ Corecție: exemplul de mai sus plasează două puncte după Dat, Atunci când și "Atunci Gherkin pune două puncte după Caracteristică și Scenariu numai. Un cuvânt cheie pas urmat de două puncte nu este analizat ca un pas, deci Cucumber ignoră linia în mod silențios. Fișierul corectat este următorul.
Feature: Visit career guide page in career.guru99.com Scenario: Visit career.guru99.com Given I am on career.guru99.com When I click on career guide menu Then I should see career guide page
Indentarea nu este necesară de către parser, dar două spații pe nivel reprezintă stilul convențional și fac ca o caracteristică lungă să fie mult mai ușor de scanat. Animația de mai jos arată un fișier de caracteristici rulat și fiecare pas devine verde pe măsură ce trece.
Ce este „Definiția pasului”?
Definiția pasului mapează pașii cazului de testare din fișierele de caracteristici (introduse de Given/When/Then) pentru a codifica. Acesta execută pașii aplicației în curs de testare și verifică rezultatele față de rezultatele așteptate. Pentru ca o definiție de pas să fie executată, aceasta trebuie să se potrivească cu componenta dată dintr-o caracteristică. Definiția pasului este definită în fișierele ruby sub „features/step_definitions/*_steps.rb”.
Potrivirea se face doar pe baza textului pasului. Cucumber nu ia în considerare cuvântul cheie atunci când caută o definiție, motiv pentru care doi pași din aceeași suită nu pot conține niciodată text identic, chiar dacă unul este un „Given” (Dată), iar celălalt un „Then” (Atunci).
Exemplu pentru definirea pasului: Aici vom folosi mai sus Cucumber Exemplu de fișier de caracteristici pentru navigarea pe career.guru99.com. Vom folosi caracteristici precum „Când, Atunci, Având în vedere”, așa cum se arată mai jos. Cucumber Exemple de fișiere de caracteristici.
Step 1: Given (/^ I am on career.guru99.com$/) do Browser.goto "http://career.guru99.com" -This will visit career.guru99 on browser end Step 2: When (/^ click on career guide menu$/) do Browser.text (:name, " career guide" ).click – This will click "career guide menu" end Step 3: Then (/^ I should see career guide page$/) do Browser.goto "http://career.guru99.com/category/career-guide/" - It will visit "career guide page" end
⚠️ O notă despre limbi: definițiile de mai sus sunt Ruby, care este locul unde Cucumber a început și motiv pentru care folderul este numit step_definitions și fișierele se termină în _steps.rbAcelași fișier de caracteristici gestionează definițiile pașilor scrise în Java, Javascenariu, Python sau C# fără nicio modificare la Gherkin. În Cucumber-JVM expresia regulată se mută într-o adnotare pe o metodă:
@Given("I am on career.guru99.com") public void i_am_on_the_career_page() { driver.get("http://career.guru99.com"); }
Indiferent de limbajul ales, definiția pasului este singurul loc în care aparțin detaliile implementării.ping selectorii și apelurile HTTP din fișierul de caracteristici sunt cele care permit unui non-programator să citească scenariul. primul Cucumber scenariu Ghidul complet construiește această asociere de la un capăt la altul.
Schiță de scenariu și exemple într-un fișier de caracteristici
Copierea unui scenariu de trei ori pentru a modifica o valoare este cea mai frecventă modalitate prin care un fișier de caracteristici devine ilizibil. Schița scenariului înlocuiește copiile cu un șablon și un Exemple tabelul furnizează valorile.
Parametrii sunt scriși între paranteze unghiulare și trebuie să corespundă unui titlu de coloană din tabelul de sub ei. Cucumber înlocuiește valorile înainte de a căuta o definiție a pasului potrivită, astfel încât definițiile în sine nu necesită o gestionare specială.
Scenario Outline: Search the career guide Given I am on career.guru99.com When I search for "<keyword>" Then I should see the <section> section Examples: | keyword | section | | interview | Interview Tips| | resume | Resume Guide |
Câteva aspecte merită reținute atunci când folosiți schițe:
- Schița rulează o dată pe rând de date. Primul rând este antetul și nu este niciodată executat.
- O schiță de scenariu trebuie să fie urmată de cel puțin o secțiune de exemple, altfel nu se execută nimic.
- Conductele tabelului nu trebuie să se alinieze, deși alinierea lor menține fișierul lizibil.
- Păstrați tabelul mic. Un tabel cu treizeci de rânduri este de obicei un semn că datele aparțin unui test bazat pe date in schimb.
Fundal, Și, Dar și alte cuvinte cheie despre castraveți murați
Dincolo de cele șase componente enumerate anterior, Gherkin are o serie de cuvinte cheie care fac fișierele de caracteristici mai lungi lizibile.
- Context — un bloc de pași dați care rulează înaintea fiecărui scenariu din funcționalitate. Elimină repetarea scrierii aceleiași precondiții în partea de sus a fiecărui scenariu.
- Și și dar — înlocuitori pentru un Dat, Când sau Atunci repetat. Se citesc mai bine și se comportă identic; Cucumber se potrivește cu textul pasului în ambele sensuri.
- Regula — un grup opționalping, adăugat în Gherkin 6, care colectează scenariile care ilustrează o regulă de business.
- Șiruri de documente — un bloc de text încadrat de trei ghilimele duble, transmis definiției pasului ca un singur argument atunci când o singură linie nu este suficientă.
- Tabelele de date — rânduri delimitate prin bare verticale atașate unui singur pas, utilizate pentru a transmite o listă de valori pasului respectiv.
- Tag-uri — etichete care încep cu semnul aromă, plasate deasupra unei Caracteristici sau a unui Scenariu, astfel încât un subset să poată fi selectat în timpul execuției.
- Comentarii — o linie care începe cu un hash. Comentariile sunt permise doar la începutul unei linii, iar Gherkin nu are comentarii bloc.
Punând cap la cap, un fișier de caracteristici cu configurare partajată arată astfel:
Feature: Career guide navigation Background: Given I am on career.guru99.com Scenario: Open the career guide menu Given I am signed in And my profile is complete When I click on career guide menu Then I should see career guide page But I should not see the admin panel
Greșeli frecvente în fișierele de funcții și cum să le remediați
pod Cucumber Problemele raportate de începători nu sunt erori ale framework-ului. Sunt mici încălcări ale regulilor Gherkin care eșuează discret.
| Greșeală | Ce se întâmplă | Repara |
|---|---|---|
| Colon după Dat, Când sau Atunci | Linia nu este recunoscută ca pas și este omisă | Folosiți două puncte doar după Caracteristică și Scenariu |
| Doi pași cu text identic | Cucumber le tratează ca duplicate deoarece cuvântul cheie este ignorat | Reformulați un pas astfel încât cele două să fie citite diferit |
| Fișier de caracteristici în afara directorului de caracteristici | Fișierul nu este niciodată descoperit și nu se execută niciun test. | Păstrați fiecare .feature fișier din folderul cu funcții |
| Cincisprezece pași într-un singur scenariu | Scenariul nu mai funcționează ca documentație | Vizați să stabiliți trei până la cinci pași și includeți detalii în definirea pașilor. |
| Apoi afirmă pe un rând al bazei de date | Testul este reușit, în timp ce comportamentul vizibil utilizatorului este defect | Afirmați pe baza unui rezultat observabil, cum ar fi pagina sau răspunsul |
| Schiță de scenariu fără tabel cu exemple | Șablonul nu se execută niciodată | Adăugați o secțiune Exemple direct sub schiță |
Repararea acestora înainte ca suita să crească este mult mai ieftină decât repararea lor ulterior, deoarece fiecare scenariu scris între timp copiază aceeași formă. Odată ce fișierele de caracteristici se comportă corect, următorul pas este conectarea proiectului - vezi Cucumber instalare ghid și versiunea mai amplă testarea automatizării serie.

