Glossaire · Automatisation de l’UI
Gherkin
Également appelé : syntaxe Gherkin, Given-When-Then, Étant donné-Quand-Alors, fichier feature
Définition
La syntaxe en texte brut Given-When-Then utilisée pour écrire des scénarios BDD dans des fichiers .feature, que des outils comme Cucumber exécutent comme tests automatisés.
Gherkin est un petit langage structuré qui décrit le comportement d’un logiciel sous forme d’exemples. Chaque fichier porte l’extension .feature et contient une Feature composée de Scenarios ; chaque scénario est une liste d’étapes commençant par Given (le contexte), When (l’action) et Then (le résultat attendu). Des outils comme Cucumber associent chaque étape à une step definition dans le code : le même texte sert ainsi à la fois de documentation et de test automatisé.
Exemple
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 |
Et la step definition correspondante en Java avec Cucumber :
@When("she sets her new password to {string}")
public void setNewPassword(String password) {
resetPage.setPassword(password);
}
Mots-clés à connaître
And/Butprolongent le type de l’étape précédente, pour la lisibilité.Backgrounds’exécute avant chaque scénario du fichier. Gardez-le court.Scenario OutlineavecExamplesexécute le scénario une fois par ligne du tableau : c’est du data-driven testing sous forme Gherkin.- Les tags comme
@smokeou@wipplacés au-dessus d’un scénario permettent de sélectionner des sous-ensembles à exécuter. Rule(Gherkin 6 et versions ultérieures) regroupe les scénarios sous la règle métier qu’ils illustrent.
Gherkin existe aussi en français (Fonctionnalité, Scénario, Étant donné, Quand, Alors) via l’en-tête # language: fr, mais la plupart des équipes conservent les mots-clés anglais.
Rédiger de bons scénarios
- Un comportement par scénario. Plusieurs paires
When/Thensignifient généralement qu’il y a deux scénarios. - Déclaratif, pas impératif. « When she requests a password reset » vaut mieux que trois étapes décrivant la saisie dans des champs et des clics sur des boutons.
- Des valeurs concrètes. Des exemples réels (« 120.00 », « Gold ») révèlent des malentendus que des formulations vagues (« une grosse commande ») masquent.
- Troisième personne ou persona cohérent. Mélanger « I », « the user » et des personas nommés fait proliférer la bibliothèque d’étapes.