Glossario · Automazione della UI
Gherkin
Detto anche: sintassi Gherkin, Given-When-Then, Given/When/Then, file feature
Definizione
La sintassi Given-When-Then in testo semplice con cui si scrivono gli scenari BDD nei file .feature, che strumenti come Cucumber eseguono come test automatizzati.
Gherkin è un piccolo linguaggio strutturato per descrivere il comportamento del software sotto forma di esempi. Ogni file ha estensione .feature e contiene una Feature composta da Scenario; ogni scenario è un elenco di step che iniziano con Given (contesto), When (azione) e Then (risultato atteso). Strumenti come Cucumber associano ogni step a una step definition nel codice, così che lo stesso testo sia insieme documentazione e test automatizzato.
Esempio
Feature: Password reset
Background:
Given a registered user "ada@example.com"
Scenario: Reset link is sent for a known email
When she requests a password reset for "ada@example.com"
Then a reset email is sent to "ada@example.com"
And the link expires after 30 minutes
Scenario Outline: Weak passwords are rejected
When she sets her new password to "<password>"
Then she sees the error "<message>"
Examples:
| password | message |
| abc | Use at least 12 characters |
| password | This password is too common |
E una step definition corrispondente in Java con Cucumber:
@When("she sets her new password to {string}")
public void setNewPassword(String password) {
resetPage.setPassword(password);
}
Parole chiave da conoscere
And/Butproseguono il tipo di step precedente, per leggibilità.Backgroundviene eseguito prima di ogni scenario del file. Tienilo breve.Scenario OutlineconExamplesesegue lo scenario una volta per ogni riga della tabella: è il data-driven testing in forma Gherkin.- I tag come
@smokeo@wipsopra uno scenario permettono di selezionare sottoinsiemi da eseguire. Rule(da Gherkin 6 in poi) raggruppa gli scenari sotto la regola di business che illustrano.
Scrivere buoni scenari
- Un comportamento per scenario. Più coppie
When/Thendi solito indicano due scenari. - Dichiarativi, non imperativi. “When she requests a password reset” è meglio di tre step che parlano di scrivere nei campi e cliccare pulsanti.
- Valori concreti. Esempi reali (“120.00”, “Gold”) fanno emergere incomprensioni che le frasi vaghe (“un ordine grande”) nascondono.
- Terza persona o personaggio coerente. Mescolare “I”, “the user” e personaggi con un nome fa crescere a dismisura la libreria degli step.