Introduction aux tests en Java
Maria Milusheva
Senior Software Engineer
Deux notions clés :
Unité – la plus petite partie testable d'une application, par exemple une méthode
Test unitaire – un test qui vérifie, isolément du reste de l'application, la justesse d'une seule « unité » de code
Remarques :
Le test unitaire cible de petites portions de logique, pas la vision d'ensemble
D'autres types de tests couvrent la vision d'ensemble (p. ex. l'intégration)
JUnit s'appelle ainsi car son principal usage est le test unitaire



assertTrue() vérifie qu'une expression est vraie : List<String> list = new ArrayList<>();
assertTrue(list.isEmpty()); // Pas d'erreur
assertFalse() vérifie l'inverse :List<String> list = new ArrayList<>();
list.add("A");
assertFalse(list.isEmpty()); // Pas d'erreur
Les variables null peuvent provoquer une NullPointerException !
Assertions pour vérifier qu'une variable est ou n'est pas null : assertNull() et assertNotNull()
Cas fréquent : vérifier qu'une valeur récupérée n'est pas nulle
Map<String, Integer> catalogue = new HashMap<>();
catalogue.put("item1", 10);
// Pas d'erreurs
assertNotNull(catalogue.get("item1"));
assertNull(catalogue.get("item2"));
Supposons que nous voulions vérifier qu'une ArrayIndexOutOfBoundsException est levée :
public String getIndex(String[] array, int index) {
return array[index];
}
JUnit propose plusieurs façons de le faire !
JUnit fournit assertThrows(), mais cela utilise une syntaxe Java avancée (expressions lambda)
Vous pouvez utiliser assertInstanceOf() ainsi :
try {
getIndex(new String[]{}, 4);
} catch (Exception e) {
// Passer la classe attendue de l'exception et l'exception elle‑même
assertInstanceOf(ArrayIndexOutOfBoundsException.class, e);
}
Un projet typique contient des centaines de tests unitaires
Ils doivent être légers et faciles à comprendre
Donnez-leur des noms parlants pour voir d'emblée ce qui a échoué en cas d'erreur
Par exemple : methodUnderTest_expectedBehavior_conditions()
Introduction aux tests en Java