Académique Documents
Professionnel Documents
Culture Documents
Cours JUnit P1
Cours JUnit P1
19/2K20 TBM 58
1er Exemple
§ Step 1 : créer une classe main.Calcul
19/2K20 TBM 59
1er Exemple
§ Step 2 : créer sa classe Test Case
19/2K20 TBM 60
1er Exemple
§ Step 2 : créer sa classe Test Case
19/2K20 TBM 61
1er Exemple
§ Step 2 : Code généré
§ La méthode annotée
− @Test : pour identifier les méthodes
des cas de tests
− @BeforeAll : sera exécutée
seulement avant le premier test
− @AfterAll : sera exécutée
seulement après le dernier test
− @BeforeEach : sera exécutée avant
chaque test
− @AfterEach : sera exécutée après
chaque test
19/2K20 TBM 62
1er Exemple
§ Step 3 : Lancer le test
19/2K20 TBM 63
1er Exemple
§ Step 3 : Implémenter la méthode testSomme() et la méthode testDivision()
en testant chaque fois les cas particuliers
19/2K20 TBM 64
JUnit 5 - Overview
§ JUnit 5 est composé de plusieurs
modules différents issus de trois sous-
projets différents.
§ JUnit 5 = JUnit Platform + JUnit
Jupiter + JUnit Vintage
− Plusieurs jars qu'il faut ajouter au
classpath en fonction des besoins.
− Le plus simple est d'utiliser Maven.
2K21 TBM 65
Cycle de vie de Test : Pre/Post-Test
§ Dans certains cas
− Avant un test, il faut faire certains traitements : instancier un objet , se connecter à
une BD, ouvrir un fichier...
− Après le test, il faut aussi fermer certaines ressources : connexion à une base de
données, socket…
§ Pour cela utiliser les méthodes setUp() et tearDown() qui sont respectivement
exécutées avant et après l’appel de chaque méthode de test.
§ La méthode annotée
− @BeforeAll : sera exécutée seulement avant le premier test
− @AfterAll : sera exécutée seulement après le dernier test
− @BeforeEach : sera exécutée avant chaque test
− @AfterEach : sera exécutée après chaque test
19/2K20 TBM 66
Pre/Post-Test : Exemple
Si Avant un test, il faut faire certains traitements :
instancier un objet , se connecter à une BD, ouvrir un
fichier...
Pour cela utiliser les méthodes setUp() avec
@BeforeAll : sera exécutée seulement avant le
premier test
@BeforeEach : sera exécutée avant chaque test
19/2K20 TBM 67
1er Exemple – cas d’échec
§ Provoquer une erreur dans le code de la méthode somme
19/2K20 TBM 68
Les assertions
§ Les assertions ont pour rôle de faire des vérifications pour le test en cours.
− Si ces vérifications échouent, alors l'assertion lève une exception qui fait échouer le
test.
§ JUnit Jupiter contient la plupart des assertions de JUnit 4 mais propose aussi
ses propres annotations dont certaines surcharges peuvent utiliser les lambdas
(Java 8).
§ Ces assertions sont des méthodes static de la classe
org.junit.jupiter.Assertions.
§ Les assertions classiques permettent de faire des vérifications sur une instance
ou une valeur ou effectuer des comparaisons.
2K21 TBM 69
Test avec les assertions
§ JUnit offre un ensemble de méthode d’assertion
§ assertTrue(condition , message) : permet de vérifier que la condition fournie
en paramètre est vraie
§ assertFalse(condition, message) : permet de vérifier que la condition fournie
en paramètre est fausse
§ assertEquals(expected, actual, message) : permet de vérifier l’égalité (sa
réciproque est assertNotEquals)
§ assertNotNull(object, message) permet de vérifier, pour les paramètres
utilisés, qu’une méthode ne retourne pas la valeur null (sa réciproque est
assertNull)
§… Remarque
En l’absence d’un message explicite, un message par défaut sera affiché.
Les méthodes assertXXX() peuvent aussi avoir la signature suivante :
assertXXX(valeurAttendue, appelDeMethodeATester, message )
19/2K20 TBM 70
JUnit 4 vs JUnit 5
19/2K20 TBM 71
JUnit 4 vs JUnit 5
19/2K20 TBM 72
Annotation JUnit
§ @Disabled : désactiver le test
§ @RepeatedTest : répéter un test plusieurs fois
19/2K20 TBM 73
Annotation JUnit
§ @DisabledOnOs | @EnabledOnOs : activer | désactiver un test selon
l’OS
19/2K20 TBM 74