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.
