Qu'est-ce que le BDD et pourquoi sauvera-t-il votre projet ?
\n\nAvez-vous déjà été dans une situation où les développeurs disent : "La logique fonctionne parfaitement", et le client répond : "Mais ce n'est pas du tout ce que j'ai demandé !" ? Cela vous parle ? C'est là que le BDD (Behaviour-Driven Development) — le développement piloté par le comportement — entre en scène.
\n\nLe BDD en Java n'est pas qu'un terme à la mode. C'est une méthodologie qui efface la frontière entre les exigences métier et le code. Au lieu d'écrire des tests techniques arides (comme en TDD), vous rédigez des scénarios dans un langage humain compréhensible. Et oui, même votre manager qui pense que "Java est une île" pourra les lire.
\n\nEn quoi le BDD diffère-t-il du TDD ? (Spoiler : ce n'est pas la même chose)
\n\nBeaucoup confondent TDD (Test-Driven Development) et BDD. Mettons les choses au clair :
\n\n- \n
- TDD : Vous écrivez un test qui échoue, puis vous écrivez le code pour le faire passer. L'accent est mis sur l'implémentation technique. \n
- BDD : Vous décrivez d'abord le comportement du système en termes utilisateur. "Quand l'utilisateur clique sur le bouton, le système fait ceci". L'accent est mis sur la valeur métier. \n
Le BDD utilise Gherkin — un langage de scénarios avec les mots-clés Given, When, Then. Cela ressemble à ceci :
Feature: Connexion à l'espace personnel\n Scenario: Connexion réussie avec des données correctes\n Given l'utilisateur se trouve sur la page de connexion\n When l'utilisateur saisit le login "admin" et le mot de passe "12345"\n Then l'utilisateur voit le message "Bienvenue !"\n\n\nReconnaissez que cela se lit comme une instruction, pas comme une documentation technique. C'est là toute la force du développement comportemental en Java.
\n\nOutils pour le BDD en Java : choisir son framework
\n\nDans le monde Java, il y a deux acteurs principaux pour le BDD : Cucumber et JBehave. Comparons-les.
\n\nCucumber pour Java : le roi du BDD
\n\nCucumber est le framework le plus populaire. Il supporte Gherkin nativement, s'intègre avec JUnit et TestNG, et possède une immense communauté. Si vous débutez en BDD Java, commencez par Cucumber.
\n\nJBehave : vieux mais fiable
\n\nJBehave est le "grand-père" du BDD. Il est moins populaire, mais toujours utilisé dans des projets legacy. Sa principale différence : les scénarios sont écrits dans des fichiers texte, et les étapes sont liées via les annotations @Given, @When, @Then.
Personnellement, je recommande Cucumber — sa documentation est meilleure et il y a plus d'exemples. Mais si vous travaillez sur un ancien projet, JBehave fera aussi l'affaire.
\n\nÉcrire votre premier test BDD en Java : guide pas à pas
\n\nPassons de la théorie à la pratique. Créons un projet simple avec Maven et Cucumber. Votre objectif est de comprendre la structure, pas simplement de copier le code.
\n\nÉtape 1 : Ajouter les dépendances
\n\nAjoutez les dépendances suivantes dans votre pom.xml :
<dependency>\n <groupId>io.cucumber</groupId>\n <artifactId>cucumber-java</artifactId>\n <version>7.18.0</version>\n <scope>test</scope>\n</dependency>\n<dependency>\n <groupId>io.cucumber</groupId>\n <artifactId>cucumber-junit-platform-engine</artifactId>\n <version>7.18.0</version>\n <scope>test</scope>\n</dependency>\n\n\nÉtape 2 : Créer un fichier feature
\n\nDans le dossier src/test/resources, créez un fichier login.feature :
Feature: Authentification utilisateur\n En tant qu'utilisateur enregistré\n Je veux me connecter au système\n Afin d'accéder à mon espace personnel\n\n Scenario: Authentification réussie\n Given l'utilisateur a ouvert la page de connexion\n When l'utilisateur saisit le login "te