Chapitre Les fonctionnalités avancées de JUnit
Tests Paramétrés avec JUnit 5
Apprendre à utiliser les tests paramétrés de JUnit 5 pour tester différentes combinaisons de données dans le cadre d'un projet Maven.
Contenu de l'exercice
Apprendre à utiliser les tests paramétrés de JUnit 5 pour tester différentes combinaisons de données dans le cadre d'un projet Maven.
Objectifs de l'exercice
Le projet contient une classe Calculator
qu'il convient de tester.
Etapes :
Création du projet Maven :
Ouvrez votre terminal ou invite de commandes. Utilisez la commande suivante pour créer un nouveau projet Maven interactif :
mvn archetype:generate -DgroupId=com.example -DartifactId=monprojet -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
Structure du projet :
Allez dans le répertoire du projet nouvellement créé :
cd monprojet
Configuration du fichier pom.xml :
Ouvrez le fichier pom.xml avec votre éditeur de texte préféré.
Ajoutez la dépendance JUnit 5 dans la section
<dependencies>
<!-- ... autres dépendances ... -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
Installation des dépendances :
Retournez dans le terminal et exécutez la commande Maven pour télécharger les dépendances :
mvn clean install
Création d'une classe avec une méthode paramétrée :
Créez une nouvelle classe dans le répertoire src/main/java/com/example :
package com.example;
public class Calculatrice {
public int additionner(int a, int b) {
return a + b;
}
}
Création d'un test paramétré :
Créez une nouvelle classe de test dans le répertoire src/test/java/com/example
pour tester la méthode de la classe Calculatrice avec des paramètres variés :
package com.example;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvSource;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class CalculatriceParametreeTest {
@ParameterizedTest
@CsvSource({"1, 2, 3", "0, 0, 0", "-1, 1, 0", "10, -5, 5"})
public void testAdditionner(int a, int b, int resultatAttendu) {
Calculatrice calculatrice = new Calculatrice();
int resultat = calculatrice.additionner(a, b);
assertEquals(resultatAttendu, resultat);
}
}
Exécution des tests :
Utilisez la commande Maven pour exécuter les tests :
mvn test
. Résultats :
Vous devriez voir la sortie indiquant que les tests ont été exécutés avec succès, testant différentes combinaisons de données avec les paramètres fournis.
Conclusion :
Vous avez appris à utiliser les tests paramétrés de JUnit 5 pour tester différentes combinaisons de données dans un projet Maven. Cette fonctionnalité permet d'écrire des tests plus concis et de tester plusieurs cas avec une seule méthode de test. Explorez d'autres fonctionnalités avancées de JUnit 5 pour des tests unitaires plus complets, y compris ceux liés aux tests paramétrés.
### Pour aller plus loin
Validation d'Entrées Utilisateur :
- Créez une classe Validator qui a différentes méthodes pour valider des données (par exemple, email, numéro de téléphone, etc.).
- Utilisez les tests paramétrés pour fournir différentes entrées et vérifier si les méthodes de validation fonctionnent correctement.
Manipulation de Chaînes de Caractères :
- Implémentez une classe StringUtils avec des méthodes pour la manipulation de chaînes de caractères (reverser, concaténer, supprimer, etc.).
- Utilisez des tests paramétrés pour vérifier le comportement de ces méthodes avec différentes entrées.
Conversion de Dates :
- Créez une classe DateConverter avec des méthodes de conversion de dates (par exemple, formatage, parsing, ajout de jours, etc.).
- Utilisez les tests paramétrés pour tester ces méthodes avec une variété de formats de date et de cas d'utilisation.
Gestion d'Inventaire :
- Concevez une classe InventoryManager qui gère un inventaire d'articles.
- Utilisez les tests paramétrés pour simuler l'ajout, la suppression et la mise à jour d'articles dans l'inventaire avec différentes quantités, prix, etc.
Calcul de Statistiques :
- Implémentez une classe StatisticsCalculator avec des méthodes pour calculer des statistiques simples (moyenne, médiane, écart-type, etc.).
- Utilisez les tests paramétrés pour évaluer ces méthodes avec différentes séries de données numériques.