Gherkin – definition, exemple

gherkin - given when then
gherkin - given when then

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.

given when then - gherkin
given when then – gherkin

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 pas

Etant 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.

[ Article lu 1 fois aujourd'hui ]
A propos Judicaël Paquet 633 Articles
  Paquet Judicaël (coach agile et devops sénior) Mes activités en France et en Suisse : - architecte de transformation agile - formations agiles personnalisées - sensibilisations et coaching de manager - audits de maturité agile et de situations - coaching agile (équipes, orga, product owner, scrum master, coach agile) Spécialités : scrum, kanban, management 3.0, agilité à l’échelle, lean startup, méthode agile. [Suisse/France]

Soyez le premier à commenter

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.


*


Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.