Découvrez comment Gherkin facilite la communication entre développeurs, testeurs et parties prenantes grâce à son langage simple et structuré. Cet article explore son utilité, sa structure et son implémentation en Java avec Cucumber pour des tests automatisés efficaces.
Par Kenza Khamaily
Intro
Dans le monde du développement logiciel, la communication efficace entre les membres d'une équipe est cruciale pour livrer des produits de qualité. Les tests Gherkin peuvent être une solution pour combler le fossé entre développeurs, testeurs et parties prenantes non techniques.
Dans cet article, nous allons explorer ce qu'est Gherkin, pourquoi il est utile, et comment l'utiliser efficacement dans vos projets.
Qu’est-ce que Gherkin ?
Gherkin est un langage simple et structuré basé sur du texte naturel. Il permet de décrire les cas de test sous forme de scénarios en utilisant des mots-clés spécifiques.
Les tests Gherkin reposent sur l'approche BDD (Behavior-Driven Development), qui place les comportements attendus du logiciel au centre du processus de conception et de développement.
Gherkin est facilement interprétable par des outils comme Cucumber ou SpecFlow.
Structure d’un scénario Gherkin :
Un test Gherkin est écrit sous forme de scénario décrivant un comportement attendu de l'application, en utilisant les mots-clés suivants :
Exemple de scénario :
Feature: User Login
Scenario: Successful login
Given the user is on the login page
When the user enters valid credentials
And clicks the "Login" button
Then the user is redirected to the dashboard
Pourquoi utiliser Gherkin ?
Favorise la collaboration : Gherkin encourage une écriture commune des tests entre les développeurs, testeurs et experts métiers, grâce à son format lisible par tous.
Documentation vivante : Chaque scénario écrit en Gherkin n’est pas seulement un test automatisé mais aussi une documentation fonctionnelle. Contrairement aux documents traditionnels qu’on oublie de modifier et qui deviennent obsolètes, les tests Gherkin évoluent avec le code
Automatisation simplifiée : Avec des outils comme Cucumber, Behave (pour Python) ou SpecFlow (pour .NET), les scénarios Gherkin peuvent être directement reliés à du code automatisé.
Comment écrire des tests Gherkin en Java avec Cucumber ?
Feature: User Login
Scenario: Successful login
Given the user is on the login page
When the user enters valid credentials
And clicks the "Login" button
Then the user is redirected to the dashboard
3. Step Definitions en Java
Ces étapes correspondent au fichier Gherkin et contiennent le code Java pour exécuter les tests.
LoginSteps.java
package com.example.stepdefinitions;
import io.cucumber.java.en.*;
publicclassLoginSteps {
private String username;
private String password;
private String pageMessage;
@Given("the user is on the login page")publicvoidtheUserIsOnTheLoginPage() {
System.out.println("User navigates to the login page.");
}
@When("the user enters valid credentials")publicvoidtheUserEntersValidCredentials() {
username = "validUser";
password = "validPassword";
System.out.println("User enters valid credentials: " + username + "/" + password);
}
@And("clicks the {string} button")publicvoidclicksTheButton(String button) {
System.out.println("User clicks the " + button + " button.");
}
@Then("the user is redirected to the dashboard")publicvoidtheUserIsRedirectedToTheDashboard() {
pageMessage = "Dashboard";
System.out.println("Redirected to: " + pageMessage);
assert pageMessage.equals("Dashboard");
}
}
4. Le Runner
Afin de configurer Cucumber :
CucumberTestRunner.java
package com.example.runner;
import org.junit.runner.RunWith;
import io.cucumber.junit.Cucumber;
import io.cucumber.junit.CucumberOptions;
@RunWith(Cucumber.class)@CucumberOptions(
features = "src/test/resources/features", // Chemin vers le fichier .feature
glue = "com.example.stepdefinitions", // Package des step definitions
plugin = {"pretty", "html:target/cucumber-report.html"}, // Génération de rapports
monochrome = true // Sortie lisible
)publicclassCucumberTestRunner {
}