Il existe quelques conventions:
- Les fichiers source Gherkin contiennent une description d'une unique fonctionnalité.
- Les fichiers sources ont l'extension .feature.
Syntaxe Gherkin
Comme Python et YAML, Gherkin est un langage orienté ligne qui utilise l'indentation pour définir la structure. La fin de ligne termine les commandes (les étapes par exemple). Les espaces et les tabulations peuvent être utilisés pour l'indentation (mais les espaces sont gages de portabilité). La plupart des lignes commencent par un mot clef.
Les lignes de commentaires sont autorisés n'importe où dans le fichier. Ils commencent éventuellement par un ou plusieurs espaces, suivis par le signe dièse (#) puis autant de texte que nécessaire.
Le parseur sépare l'entrée en fonctionnalités (feature), scénarios et étapes (step). Quand vous exécutez la fonctionnalité, la partie finale (après le mot clef) de chaque étape est associée au bloc de code appelé définition d'étape.
Un fichier source Gherkin ressemble habituellement à ceci:
1: Feature: Some terse yet descriptive text of what is desired 2: In order to realize a named business value 3: As an explicit system actor 4: I want to gain some beneficial outcome which furthers the goal 5: 6: Scenario: Some determinable business situation 7: Given some precondition 8: And some other precondition 9: When some action by the actor 10: And some other action 11: And yet another action 12: Then some testable outcome is achieved 13: And something else we can check happens too 14: 15: Scenario: A different situation 16: ...
La première ligne démarre la fonctionnalité. Les lignes 2 à 4 sont du texte qui ne sera pas analysé qui sert à décrire la valeur métier de cette fonctionnalité. A la ligne 6, le scénario démarre. Les lignes 7 à 13 sont les étapes du scénario. A la ligne 15 démarre le scénario suivant et ainsi de suite.
Comme promis, le même en français:
0: # language: fr 1: Fonctionnalité: Un texte descriptif de ce qui est souhaité 2: de façon à obtenir ce qu'on appelle de la valeur métier 3: en tant qu'acteur particulier du système 4: je veux gagner un certain bénéfice qui correspond à l'objectif 5: 6: Scénario: une situation métier particulière 7: Etant donné une certaine précondition 8: Et une autre précondition 9: Quand une action particulière par l'acteur 10: Et une autre action 11: Et encore une autre 12: Alors un résultat particulier testable est produit 13: Et un autre également 14: 15: Scénario: un situation différente 16: ...
Seule différence, le commentaire initial indiquant la langue utilisée.
Voici les correspondances des mots clefs anglais et français:
- feature: Fonctionnalité
- background: Contexte
- scenario: Scénario
- scenario_outline: Plan du scénario|Plan du Scénario
- examples: Exemples
- given: "*|Soit|Etant donné|Etant donnée|Etant donnés|Etant données|Étant donné|Étant donnée|Étant donnés|Étant données"
- when: "*|Quand|Lorsque|Lorsqu'<"
- then: "*|Alors"
- and: "*|Et"
- but: "*|Mais"