Ces 3 mots « given when then » vont sont familiers ? C’est en effet les 3 mots clés du langage Gherkin utilisé pour créer des critères d’acceptation. Nous allons profiter de cet article pour voir comment cela fonctionne.
Definition Gherkin
Gherkin aussi connu sous le nom de « given when then » est un langage naturel pour expliquer les comportements attendus dans un contexte ; ce langage se veut simple et compréhensible à la lecture par tout le monde.
Le langage Gherkin a l’avantage d’exister dans des dizaines de langues différentes.
Si en anglais on écrit « given when then », en français cela se traduira par « étant donné… quand… alors« .
Des pratiques de développement logiciel comme le BDD ou l’ATDD, utilisent ce langage pour la description des comportements attendus.
Ecrire un test Gherkin
A présent, nous allons voir concrètement comment écrire un test en Gherkin.
Etant donné que je suis sur la page panier
Quand je décide de supprimer le produit d’identifiant « 255 » au panier
Alors le produit d’identifiant « 255 » n’est plus présenté
Ce test est très simpliste mais l’objectif est principalement de vous montrer comment la structure fonctionne. Les chiffres entre parenthèse permettent en général d’indiquer un élément pouvant être modifié.
En langage de développeur, cela se transforme en variable.
Créer des scénarios et ajout de conditions
Il est possible aussi en Gherkin de réaliser plusieurs tests possibles pour un même scénario ; cela permet d’expliquer des cas résultats différents selon certains critères.
Scenario : affichage du prix du produit
Etant donné que je navigue sur le site ecommerce
Quand j’affiche une fiche produit
Et que ce produit a une promotion de « 0 » %
Alors le prix affiché du produit ne change pasEtant donné que je navigue sur le site ecommerce
Quand j’affiche une fiche produit
Et que ce produit a une promotion de « 20 » %
Alors le prix affiché du produit est de « -20% »
Et une mention « promotion -20% » rappelle la promotion
Comme vous pouvez le constater, le scenario décrit 2 comportements différents ; au passage, il est possible d’utiliser la notion « Et » structurante pour amener plusieurs conditions possibles.
Annoncer des jeux de données
Le langage Gherkin propose également d’amener une notion de jeux de données. Afin de ne pas se focaliser sur un seul cas. Cela se représente par l’écriture d’un tableau avec le caractère | ; ceux connaissant un peu le SQL devrait y voir une similitude.
Reprenons notre cas précédent où nous pourrons d’ailleurs coupler les deux comportements voire en rajouter un troisième :
Scenario : affichage du prix du produit
Etant donné que je visualise une fiche produit
| id produit | prix |
| 255 | 300 |
| 234 | 1000 |
| 567 | 100 |
Quand la promotion appliquée est de
| promotion |
| 0% |
| 20% |
| 50% |
Alors le prix affiché du produit est de
| prix affiché |
| 300 |
| 800 |
| 50 |
Toute personne qui lira ces scenarii pourra sans difficulté comprendre ce que nous désirons tester comme comportements.
Conclusion Gherkin – given when then
Vous avez les bases à présent du Gherkin ; de nombreux logiciels comme Behat ou Cucumber permettent de transformer ce langage en code applicatif afin de pouvoir automatiser des tests.
Si vous désirez que nous avancions encore plus sur ce sujet, n’hésitez pas à nous le faire savoir en commentaire.
Soyez le premier à commenter