Cas de test JUnit en Java : Tutoriel simple JUnit 5.7.1 Hello World avec tous les détails en un
Publié: 2019-10-30
Qu'est-ce que JUnit ?
JUnit est un framework open source simple et puissant pour écrire et exécuter des tests reproductibles. J'adore les cas de test JUnit. Au cours de mon développement de projet Java, j'ai largement utilisé JUnit pour la couverture du code. Il s'agit d'une instance de l'architecture xUnit pour les frameworks de tests unitaires.
Les fonctionnalités de JUnit incluent :
- Assertions pour tester les résultats attendus
- Dispositifs de test pour partager des données de test communes
- Coureurs de test pour l'exécution des tests
Dans ce tutoriel, je couvrirai les points 1 et 3. Vous avez besoin des dépendances Maven ci-dessous dans votre projet.
1 2 3 4 5 |
< dependency > < groupId > junit < / groupId > < artifactId > junit < / artifactId > < version > 4.12 < / version > < / dependency > |
Commençons à écrire du code.
Étape 1
Créez le projet CrunchifyJunitTest
et spécifiez le package com.crunchify.junit
. Voici une structure de package pour une référence rapide.

Étape 2
Clic droit sur CrunchifyJunitTest
=> Nouvelle classe => CrunchifyJunitTest.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
package com . crunchify . junit ; /** * @author Crunchify * */ import static org . junit . Assert . assertEquals ; import org . junit . Test ; public class CrunchifyJunitTest { @ Test public void testingCrunchifyAddition ( ) { assertEquals ( "Here is test for Addition Result: " , 30 , addition ( 27 , 3 ) ) ; } @ Test public void testingHelloWorld ( ) { assertEquals ( "Here is test for Hello World String: " , "Hello + World" , helloWorld ( ) ) ; } public int addition ( int x , int y ) { return x + y ; } public String helloWorld ( ) { String helloWorld = "Hello +" + " World" ; return helloWorld ; } } |
Étape 3
Eclipse suggérera et ajoutera automatiquement la dépendance org.junit.Test
une fois que vous aurez tapé @Test .

Étape 4
Pour tester votre test JUnit
- clic droit sur la classe
- Cliquez sur Exécuter en tant que
- Cliquez sur
JUnit Test
Vous devriez voir quelque chose comme ça.

Étape-5
Essayez de changer le paramètre de valeur attendue de la méthode de 30 => 300
et de Hello World => Hello -- World
et testez à nouveau.
1 2 3 4 5 6 7 8 9 |
@ Test public void testingCrunchifyAddition ( ) { assertEquals ( "Here is test for Addition Result: " , 300 , addition ( 27 , 3 ) ) ; } @ Test public void testingHelloWorld ( ) { assertEquals ( "Here is test for Hello World String: " , "Hello -- World" , helloWorld ( ) ) ; } |

Étape-6
Exécutons maintenant le même cas de test via other java
. Créer CrunchifyRunnerJUnit.java

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
package com . crunchify . junit ; import org . junit . runner . JUnitCore ; import org . junit . runner . Result ; import org . junit . runner . notification . Failure ; /** * @author Crunchify * */ public class CrunchifyRunnerJUnit { public static void main ( String [ ] args ) { Result result = JUnitCore . runClasses ( CrunchifyJunitTest . class ) ; for ( Failure failure : result . getFailures ( ) ) { System . out . println ( failure . toString ( ) ) ; } if ( result . wasSuccessful ( ) ) { System . out . println ( "Both Tests finished successfully..." ) ; } } } |
Étape-7
Exécutez CrunchifyRunnerJUnit.java
en tant qu'application Java Application
.
Étape-8
Dans le cas du 1st code
(paramètre attendu correct), vous devriez voir une sortie comme celle-ci :
1 |
Both Tests finished successfully . . . |
Étape-9
En cas de 2nd code
(paramètre attendu incorrect), vous devriez voir quelque chose comme ceci :
1 2 |
testingCrunchifyAddition ( com . crunchify . junit . CrunchifyJunitTest ) : Here is test for Addition Result : expected : < 300 > but was : < 30 > testingHelloWorld ( com . crunchify . junit . CrunchifyJunitTest ) : Here is test for Hello World String : expected : < Hello [ -- ] World > but was : < Hello [ + ] World > |
Et vous êtes prêt. Faites-moi savoir si vous voyez des problèmes pour exécuter ce code.
Annotation disponible dans le cas de test JUnit :
Annotation | La description |
---|---|
@Testez la méthode void publique() | L'annotation @Test identifie qu'une méthode est une méthode de test. |
@Avant la méthode void publique() | Exécutera la méthode avant chaque test. Cette méthode peut préparer l'environnement de test (par exemple lire les données d'entrée, initialiser la classe). |
@Après la méthode void publique() | Exécutera la méthode après chaque test. Cette méthode peut nettoyer l'environnement de test (par exemple, supprimer des données temporaires, restaurer les valeurs par défaut). |
@BeforeClass méthode vide publique () | Exécutera la méthode une fois, avant le début de tous les tests. Cela peut être utilisé pour effectuer des activités chronophages, par exemple pour se connecter à une base de données. |
@AfterClass méthode vide publique () | Exécutera la méthode une fois, une fois tous les tests terminés. Cela peut être utilisé pour effectuer des activités de nettoyage, par exemple pour se déconnecter d'une base de données. |
@Ignorer | Ignorera la méthode de test. Ceci est utile lorsque le code sous-jacent a été modifié et que le cas de test n'a pas encore été adapté. Ou si le temps d'exécution de ce test est trop long pour être inclus. |
@Test (attendu = Exception.class) | Échoue si la méthode ne lève pas l'exception nommée. |
@Test(timeout=100) | Échoue si la méthode prend plus de 100 millisecondes. |
Méthodes de test d'assertion disponibles :
Déclaration | La description |
---|---|
échec (chaîne) | Laissez la méthode échouer. Peut être utilisé pour vérifier qu'une certaine partie du code n'est pas atteinte. Ou d'avoir un test défaillant avant que le code de test ne soit implémenté. |
assertTrue(vrai) / assertTrue(faux) | Sera toujours vrai/faux. Peut être utilisé pour prédéfinir un résultat de test, si le test n'est pas encore implémenté. |
assertTrue([message], condition booléenne) | Vérifie que la condition booléenne est vraie. |
assertsEquals([String message], attendu, réel) | Teste que deux valeurs sont identiques. Remarque : pour les tableaux, la référence est vérifiée et non le contenu des tableaux. |
assertsEquals([String message], attendu, réel, tolérance) | Testez que les valeurs flottantes ou doubles correspondent. La tolérance est le nombre de décimales qui doivent être identiques. |
assertNull([message], objet) | Vérifie que l'objet est nul. |
assertNotNull([message], objet) | Vérifie que l'objet n'est pas nul. |
assertSame([String], attendu, réel) | Vérifie que les deux variables font référence au même objet. |
assertNotSame([String], attendu, réel) | Vérifie que les deux variables font référence à des objets différents. |