Langage Gherkin : syntaxe, format et exemples
⚡ Résumé intelligent
Gherkin est un langage métier qui décrit le comportement d'un logiciel sans détailler son implémentation. Il utilise les mots-clés Given, When et Then pour définir… Cucumber Scénarios de test en langage clair, servant de documentation vivante et de squelette aux tests BDD automatisés.

Qu’est-ce que le langage cornichon ?
Cornichon est un langage métier qui vous aide à décrire le comportement métier sans entrer dans les détails d'implémentation. C'est un langage dédié à la définition des tests. Cucumber Ce format utilise un langage clair pour décrire les cas d'utilisation et permet aux utilisateurs de supprimer les détails logiques des tests comportementaux.
Le texte en Gherkin sert à la fois de documentation et de structure à vos tests automatisés. Le format Gherkin est basé sur la grammaire TreeTop, disponible dans plus de 37 langues ; vous pouvez donc écrire du Gherkin dans plus de 37 langues parlées. Le script remplit deux fonctions principales : documenter les scénarios d’utilisation et fournir la base pour l’écriture de tests BDD automatisés.
Pourquoi cornichon ?
En l'absence d'un format commun et clair, les équipes métiers et techniques décrivent les exigences différemment, ce qui engendre des malentendus. Gherkin offre à tous un vocabulaire unique et structuré, fluide et naturel, directement transposable en tests exécutables.
Syntaxe de Gherkin
Gherkin est un langage orienté ligne, tout comme YAML et PythonChaque ligne est appelée une étape et commence par un mot-clé. L'indentation est assurée par des tabulations ou des espaces. Un commentaire peut être ajouté n'importe où, mais doit commencer par le symbole #. L'interpréteur lit chaque ligne après avoir supprimé les mots-clés Gherkin tels que Given, When et Then.
Feature: Title of the Scenario Given [Preconditions or Initial Context] When [Event or Trigger] Then [Expected output]
Un document Gherkin possède l'extension .feature et est simplement un fichier de test doté d'une extension descriptive. Cucumber lit le document Gherkin et exécute un test pour vérifier que le logiciel se comporte comme décrit par la syntaxe Gherkin.
Termes importants utilisés dans Gherkin
Les principaux mots-clés sont : Caractéristique, Contexte, Scénario, Étant donné, Quand, Alors, Et, Mais, et Plan du scénario. Cucumber Il n'existe pas de règles de dénomination strictes, mais une convention de dénomination claire est utile.
Fonctionnalité
Le fichier doit avoir l'extension .feature, et chaque fichier de fonctionnalités ne doit décrire qu'une seule fonctionnalité. Le mot-clé Feature commence par Fonctionnalité: suivi d'un espace et du nom de la fonctionnalité.
Scénario
Chaque fichier de fonctionnalités peut comporter plusieurs scénarios, et chaque scénario commence par Scénario: suivi du nom du scénario.
Présentation
Le mot-clé « Contexte » ajoute du contexte au scénario. Il peut contenir des étapes communes à tous les scénarios ; la différence réside dans le fait que ces étapes s’exécutent avant chaque scénario.
Donné
Le mot-clé Given place le système dans un état connu avant que l'utilisateur n'interagisse avec lui. Il définit la précondition ou le contexte :
Given I am on "/."
Lorsque vous
Le mot-clé When définit l'action effectuée par l'utilisateur :
When I perform "Sign In."
Ensuite
Le mot-clé Then définit le résultat observé après l'action effectuée à l'étape When. Vous ne devez vérifier que les changements notables.
Then I should see "Welcome Tom."
Et mais
Vous pouvez avoir plusieurs étapes « Étant donné », « Quand » ou « Alors ». Les mots clés « Et » et « Mais » ajoutent des étapes supplémentaires pour une meilleure lisibilité.
And I enter "EmailAddress" with "tomjohn@gmail.com." But I should see "Welcome Tom."
Étant donné que les mots clés « Given », « When », « Then », « And » et « But » sont des étapes de test. L’interpréteur ne signale pas d’erreur si vous les inversez, mais le code sera incohérent ; utilisez donc chaque mot clé conformément à son usage prévu.
Exemples de cornichons
Exemple 1: Une fonctionnalité de connexion pour un site de réseautage social.
Feature: Login functionality of a social networking site Given I am a registered user When I enter my username And I enter my password Then I should be redirected to the home page
Gherkin analyse chaque étape écrite dans le fichier de fonctionnalités, et les étapes du fichier de fonctionnalités doivent correspondre à celles du fichier de définition des étapes.
Exemple 2: Un scénario d'authentification utilisateur avec un arrière-plan.
Feature: User Authentication Background: Given the user is already registered on the website Scenario: Successful login 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
Meilleures pratiques d'utilisation du cornichon
- Chaque scénario doit être exécuté séparément et indépendamment.
- Chaque fonctionnalité doit pouvoir être exécutée individuellement.
- Les informations relatives à chaque étape doivent être affichées indépendamment.
- Reliez vos scénarios à vos exigences et track quels scénarios correspondent à chaque exigence.
- Créez des étapes modulaires et faciles à comprendre, et combinez les scénarios courants.
- Décrivez ce que fait le système, et non comment il le fait.
Avantages du cornichon
- Gherkin est suffisamment simple pour être compris par des non-programmeurs.
- Les programmeurs peuvent l'utiliser comme base solide pour démarrer leurs tests.
- Cela rend les récits des utilisateurs plus faciles à comprendre et cible les exigences de l'entreprise.
- Les dirigeants d'entreprise et les développeurs peuvent tous deux lire le même scénario.
- Les cas de test Gherkin relient directement les tests d'acceptation aux tests automatisés.
- Le style d'écriture facilite la réutilisation du code entre les tests.
Inconvénients du cornichon
- Cela nécessite un niveau élevé d'engagement et de collaboration de la part des entreprises.
- Cela peut ne pas fonctionner dans toutes les situations.
- Des tests mal rédigés peuvent augmenter les coûts de maintenance des tests.
