Gherkin Language : format, syntaxe et test Gherkin en Cucumber
Qu’est-ce que le langage cornichon ?
Cornichon est un langage lisible par l'entreprise qui vous aide à décrire le comportement de l'entreprise sans entrer dans les détails de la mise en œuvre. Il s'agit d'un langage spécifique au domaine pour définir des tests dans Cucumber format pour les spécifications. Il utilise un langage simple pour décrire les cas d'utilisation et permet aux utilisateurs de supprimer les détails logiques des tests de comportement.
Le texte en langage Gherkin fait office de documentation et de squelette de vos tests automatisés. Le format Gherkin est basé sur TreeTop Grammar qui existe dans plus de 37 langues. Vous pouvez donc écrire votre cornichon dans plus de 37 langues parlées.
Ce script répond à deux objectifs principaux :
- Documente les scénarios utilisateur
- Ecrire un test automatisé (BDD)
Pourquoi cornichon ?
Le besoin de Gherkin peut être facilement expliqué par les images suivantes
Avant le cornichon
Après le cornichon
Syntaxe de Gherkin
Gherkin est un langage orienté ligne, tout comme YAML et Python. Chaque ligne appelée étape commence par un mot-clé et se termine par un arrêt. Une tabulation ou un espace est utilisé pour l'indentation.
Dans ce script, un commentaire peut être ajouté n'importe où, mais il doit commencer par un signe #. Il lit chaque ligne après avoir supprimé les mots-clés de Ghrekin comme indiqué, quand, alors, etc.
Les étapes typiques de Gherkin ressemblent à
Gherkin Scripts : relie le concept humain de cause et d'effet au concept logiciel d'entrée/processus/sortie.
Syntaxe de Gherkin
Feature: Title of the Scenario Given [Preconditions or Initial Context] When [Event or Trigger] Then [Expected output]
Un document Gherkin a une extension .feature et simplement un fichier de test avec une extension sophistiquée. Cucumber lit le document Gherkin et exécute un test pour valider que le logiciel se comporte conformément à la syntaxe Gherkin.
Termes importants utilisés dans Gherkin
- Fonctionnalité
- Information de Base:
- Scénario
- Donné
- Quand
- Ensuite
- Et
- Mais
- Exemples de plans de scénario
La convention de dénomination est utilisée pour le nom de la fonctionnalité. Cependant, il n'y a pas de règles établies dans Cucumber sur les noms.
Fonctionnalité
Le fichier doit avoir l'extension .feature et chaque fichier de fonctionnalités ne doit avoir qu'une seule fonctionnalité. Le mot-clé de fonctionnalité étant avec la fonctionnalité : et après cet ajout, un espace et le nom de la fonctionnalité seront écrits.
Scénario
Chaque fichier de fonctionnalités peut avoir plusieurs scénarios, et chaque scénario commence par Scénario : suivi du nom du scénario.
Information de Base:
Le mot-clé d'arrière-plan vous aide à ajouter du contexte au scénario. Il peut contenir certaines étapes du scénario, mais la seule différence est qu'il doit être exécuté avant chaque scénario.
Donné
L'utilisation du mot-clé Given consiste à mettre le système dans un état familier avant que l'utilisateur ne commence à interagir avec le système. Cependant, vous pouvez omettre d'écrire les interactions utilisateur dans les étapes données si elles sont données dans l'étape « Précondition ».
syntaxe:
Given
Given - a test step that defines the 'context Given I am on "/."
Quand
Lorsque l'étape consiste à définir l'action effectuée par l'utilisateur.
syntaxe:
When
A When - a test step that defines the 'action' performed When I perform "Sign In."
Ensuite
L'utilisation du mot-clé « puis » consiste à voir le résultat après l'action dans quand étape. Cependant, vous ne pouvez vérifier que les changements notables.
syntaxe:
Then
Then - test step that defines the 'outcome.' Then I should see "Welcome Tom."
Et mais
Vous pouvez en avoir plusieurs données quand ou alors.
syntaxe:
But
A But - additional test step which defines the 'action' 'outcome.' But I should see "Welcome Tom."
And - additional test step that defines the 'action' performed And I write "EmailAddress" with "Tomjohn@gmail.com."
Étant donné, quand, alors et mais sont des étapes de test. Vous pouvez les utiliser de manière interchangeable. L'interpréteur n'affiche aucune erreur. Cependant, ils n’auront sûrement aucun « sens » une fois lus.
Given The login page is opening When I input username, password and click the Login button Then I am on the Homepage
Exemples de cornichons
1 Exemple:
Feature: Login functionality of social networking site Facebook. Given: I am a facebook user. When: I enter username as username. And I enter the password as the password Then I should be redirected to the home page of facebook
Le scénario mentionné ci-dessus concerne une fonctionnalité appelée connexion utilisateur.
Gherkin analysera chaque étape écrite dans le fichier de définition d'étape. Par conséquent, les étapes sont indiquées dans le fichier de fonctionnalités et le fichier de définition des étapes doit correspondre.
2 Exemple:
Feature: User Authentication Background: Given the user is already registered to the website Scenario: 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 And the user should be presented with a success message
Les meilleures pratiques d'utilisation de Gherkin
- Chaque scénario doit être exécuté séparément
- Chaque fonctionnalité doit pouvoir être exécutée avec
- Les informations sur les étapes doivent être affichées indépendamment
- Connectez vos scénarios à vos besoins
- Gardez une trace complète des scénarios qui doivent être inclus dans un document d'exigences
- Créez des étapes modulaires et faciles à comprendre
- Essayez de combiner tous vos scénarios courants
Avantages du cornichon
- Gherkin est assez simple à comprendre pour que les non-programmeurs
- Les programmeurs peuvent l'utiliser comme une base très solide pour démarrer leurs tests
- Cela rend les User Stories plus faciles à digérer
- Le script Gherkin peut facilement être compris par les dirigeants d'entreprise et les développeurs.
- Gherkin Testing cible les besoins de l’entreprise
- Une proportion importante des spécifications fonctionnelles est rédigée sous forme de user stories
- Vous n'avez pas besoin d'être expert pour comprendre le petit jeu de commandes Gherkin
- Les cas de test Gherkin relient les tests d'acceptation directement aux tests automatisés
- Le style d'écriture des cas de tests est plus facile à réutiliser le code dans d'autres tests
Inconvénients du cornichon
- Cela nécessite un niveau élevé d’engagement commercial et de collaboration
- Peut ne pas fonctionner correctement dans tous les scénarios
- Des tests mal écrits peuvent facilement augmenter le coût de maintenance des tests
Résumé
- Le cornichon est le format des spécifications du concombre
- Gherkin est un langage orienté ligne, tout comme YAML et Python
- Gherkin Scripts relie le concept humain de cause et d'effet au concept logiciel d'entrée/processus et de sortie.
- Fonctionnalité, Contexte, Scénario, Étant donné, Quand, Alors et Mais sont utilisés de manière importante dans Gherkin
- Dans Gherkin, chaque scénario doit s'exécuter séparément
- Le plus grand avantage de Gherkin est assez simple à comprendre pour les non-programmeurs.
- Le test Gherkin peut ne pas fonctionner correctement dans tous les types de scénarios