Premiers tests JUnit
Objectifs du chapitre :
- Apprendre à écrire des tests unitaires simples avec JUnit.
- Comprendre comment exécuter ces tests et interpréter les résultats.
- Se familiariser avec les outils et les bonnes pratiques pour les tests unitaires.
6.1 Écrire des tests unitaires simples
Pour écrire des tests unitaires simples avec JUnit, il faut suivre quelques étapes de base :
-
Créer une classe de test :
- La classe de test est généralement placée dans le répertoire
src/test/java. - Le nom de la classe de test doit refléter le nom de la classe à tester, avec un suffixe "Test" (par exemple, pour tester
Calculator, nommez la classe de testCalculatorTest).
- La classe de test est généralement placée dans le répertoire
-
Ajouter les dépendances JUnit :
- Assurez-vous que les dépendances JUnit sont ajoutées à votre projet Maven ou Gradle (comme décrit dans les chapitres précédents).
-
Écrire les méthodes de test :
- Les méthodes de test sont annotées avec @Test et contiennent des assertions pour vérifier le comportement du code.
Exemple de classe et de test simple en JUnit 4 :
Classe à tester (Calculator.java) :
package com.example;
public class Calculator {
public int add(int a, int b) {
return a + b;
}
}
Classe de test (CalculatorTest.java) :
package com.example;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class CalculatorTest {
@Test
public void testAdd() {
Calculator calculator = new Calculator();
int result = calculator.add(2, 3);
assertEquals(5, result);
}
}
Exemple de classe et de test simple en JUnit 5 :
Classe à tester (Calculator.java) :
package com.example;
public class Calculator {
public int add(int a, int b) {
return a + b;
}
}
Classe de test (CalculatorTest.java) :
package com.example;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class CalculatorTest {
@Test
void testAdd() {
Calculator calculator = new Calculator();
int result = calculator.add(2, 3);
assertEquals(5, result);
}
}
6.2 Exécuter les tests
IntelliJ IDEA :
- Faites un clic droit sur la classe de test ou sur le répertoire de test.
- Sélectionnez
Run 'CalculatorTest'. - Les résultats des tests s'afficheront dans la fenêtre de résultats de test en bas.
Visual Studio Code :
- Ouvrez le fichier de test.
- Cliquez sur l'icône de test à côté de la méthode de test ou utilisez la palette de commandes (
Ctrl+Shift+P) pour sélectionnerJava: Run Tests. - Les résultats des tests s'afficheront dans la fenêtre de sortie.
Ligne de commande :
Pour Maven :
mvn test
6.3 Interpréter les résultats des tests
Les résultats des tests indiqueront si chaque test a réussi ou échoué. Voici comment interpréter ces résultats :
-
Test réussi :
- Si toutes les assertions d'un test sont vraies, le test est considéré comme réussi.
- Les résultats afficheront un marqueur vert à côté du test réussi.
-
Test échoué :
- Si une assertion est fausse, le test échoue.
- Les résultats afficheront un marqueur rouge à côté du test échoué et fourniront des détails sur l'échec (par exemple, les valeurs attendues et réelles).
-
- Les outils comme IntelliJ IDEA et Visual Studio Code fournissent des rapports détaillés sur les tests exécutés, incluant le nombre de tests réussis, échoués, et ignorés.
- Les outils de build comme Maven et Gradle génèrent des rapports de test sous forme de fichiers HTML dans le répertoire
targetoubuild.
6.4 Bonnes pratiques pour les tests unitaires
-
Nommer les tests de manière descriptive :
- Utilisez des noms de méthodes de test qui décrivent clairement ce que le test vérifie (par exemple,
testAddWithPositiveNumbers).
- Utilisez des noms de méthodes de test qui décrivent clairement ce que le test vérifie (par exemple,
-
Isoler les tests :
- Chaque test doit être indépendant des autres. Évitez les dépendances entre les tests pour garantir qu'ils puissent être exécutés dans n'importe quel ordre.
-
Utiliser des assertions appropriées :
- Choisissez les assertions qui vérifient précisément ce que vous souhaitez tester (par exemple, utilisez
assertThrowspour vérifier qu'une exception est lancée).
- Choisissez les assertions qui vérifient précisément ce que vous souhaitez tester (par exemple, utilisez
-
Tester les cas limites :
- Incluez des tests pour les cas limites et les scénarios exceptionnels (par exemple, zéro, valeurs négatives, valeurs nulles).
-
Exécuter les tests fréquemment :
- Intégrez l'exécution des tests dans votre cycle de développement quotidien pour détecter rapidement les régressions et les erreurs.
Résumé du chapitre :
- Écrire des tests unitaires simples implique de créer une classe de test, d'ajouter des dépendances JUnit, et de rédiger des méthodes de test avec des assertions.
- Les tests peuvent être exécutés dans des IDE comme IntelliJ IDEA et Visual Studio Code, ou via la ligne de commande avec Maven et Gradle.
- Interpréter les résultats des tests permet de comprendre si le code fonctionne comme prévu ou s'il contient des erreurs.
- Suivre les bonnes pratiques de test unitaire garantit des tests efficaces et maintenables.