Qu'est-ce que Junit Assert?
Assert est une méthode utile pour déterminer l'état de réussite ou d'échec d'un cas de test. Les méthodes d'assert sont fournies par la classe org.junit.Assert qui étend la classe java.lang.Object.
Il existe différents types d'assertions telles que Boolean, Null, Identical, etc.
Junit fournit une classe nommée Assert, qui fournit un tas de méthodes d'assertion utiles pour écrire des cas de test et pour détecter les échecs de test
Les méthodes assert sont fournies par la classe org.junit.Assert qui étend la classe java.lang.Object .
Dans ce didacticiel, vous apprendrez-
- Méthodes JUnit Assert
- Booléen
- Objet nul
- Identique
- Affirmer égal
- Assert Array Equals
- Message d'échec
- AssertEquals de JUnit
- Assertions à virgule flottante
- Exemple d'assert JUnit
Méthodes JUnit Assert
Booléen
Si vous souhaitez tester les conditions booléennes (vrai ou faux), vous pouvez utiliser les méthodes d'assertion suivantes
- assertTrue (condition)
- assertFalse (condition)
Ici, la condition est une valeur booléenne.
Objet nul
Si vous souhaitez vérifier la valeur initiale d'un objet / variable, vous disposez des méthodes suivantes:
- assertNull (objet)
- assertNotNull (objet)
Ici, l'objet est un objet Java, par exemple assertNull (réel);
Identique
Si vous souhaitez vérifier si les objets sont identiques (c'est-à-dire en comparant deux références au même objet java), ou différents.
- assertSame (attendu, réel), il retournera vrai si attendu == réel
- assertNotSame (attendu, réel)
Affirmer égal
Si vous souhaitez tester l'égalité de deux objets, vous disposez des méthodes suivantes
- assertEquals (attendu, réel)
Il retournera vrai si: attendu.equals (réel) renvoie vrai.
Assert Array Equals
Si vous souhaitez tester l'égalité des tableaux, vous disposez des méthodes suivantes, comme indiqué ci-dessous:
- assertArrayEquals (attendu, réel)
La méthode ci-dessus doit être utilisée si les tableaux ont la même longueur, pour chaque valeur valide pour i , vous pouvez la vérifier comme indiqué ci-dessous:
- assertEquals (attendu [i], réel [i])
- assertArrayEquals (attendu [i], réel [i])
Message d'échec
Si vous voulez lancer une erreur d'assertion, vous avez fail () qui aboutit toujours à un verdict d'échec.
- Échec (message);
Vous pouvez avoir une méthode d'assertion avec un paramètre String supplémentaire comme premier paramètre. Cette chaîne sera ajoutée au message d'échec si l'assertion échoue. Par exemple, fail (message) peut être écrit comme
- assertEquals (message, attendu, réel)
AssertEquals de JUnit
Vous avez assertEquals (a, b) qui repose sur la méthode equals () de la classe Object.
- Ici, il sera évalué comme a.equals (b).
- Ici, la classe testée est utilisée pour déterminer une relation d'égalité appropriée.
- Si une classe ne remplace pas la méthode equals () de la classe Object , elle aura le comportement par défaut de la méthode equals () , c'est-à-dire l'identité de l'objet.
Si a et b sont des primitives telles que byte , int , boolean , etc. alors ce qui suit sera fait pour assertEquals (a, b):
a et b seront convertis en leur type d'objet wrapper équivalent ( octet, entier , booléen , etc.), puis a.equals (b) sera évalué.
Par exemple: considérons les chaînes mentionnées ci-dessous ayant les mêmes valeurs, testons-les en utilisant assertTrue
String obj1 = "Junit";String obj2 = "Junit";assertEquals (obj1, obj2);
L'instruction assert ci-dessus renverra true car obj1.equals (obj2) renvoie true.
Assertions à virgule flottante
Lorsque vous souhaitez comparer des types à virgule flottante (par exemple double ou flottant ), vous avez besoin d'un delta de paramètre supplémentaire requis pour éviter les problèmes d'erreurs d'arrondi lors des comparaisons en virgule flottante.
L'assertion s'évalue comme indiqué ci-dessous:
- Math.abs (attendu - réel) <= delta
Par exemple:
assertEquals (aDoubleValue, anotherDoubleValue, 0.001)
Exemple d'assert JUnit
L'exemple ci-dessous montre comment affirmer une condition à l'aide des méthodes d'assertion JUnit.
Créons une classe de test simple appelé Junit4AssertionTest.java et un coureur test de classe TestRunner.java .
Vous allez créer quelques variables et des instructions d'assert importantes dans JUnit.
Dans cet exemple, vous exécuterez notre classe de test en utilisant TestRunner.java
Étape 1) Permet de créer une classe couvrant toutes les méthodes de déclaration d'assert importantes dans junit:
Junit4AssertionTest.java
package guru99.junit;import statique org.junit.Assert. *;import org.junit.Test;classe publique Junit4AssertionTest {@Testpublic void testAssert () {// Déclaration de variableString string1 = "Junit";String string2 = "Junit";String string3 = "test";String string4 = "test";Chaîne string5 = null;int variable1 = 1;int variable2 = 2;int [] airethematicArrary1 = {1, 2, 3};int [] airethematicArrary2 = {1, 2, 3};// Assert déclarationsassertEquals (chaîne1, chaîne2);assertSame (chaîne3, chaîne4);assertNotSame (chaîne1, chaîne3);assertNotNull (chaîne1);assertNull (chaîne5);assertTrue (variable1Étape 2) Vous devez créer une classe de testeur pour exécuter la classe ci-dessus:
TestRunner.java
package guru99.junit;import org.junit.runner.JUnitCore;import org.junit.runner.Result;import org.junit.runner.notification.Failure;public class TestRunner {public static void main (String [] args) {Résultat résultat = JUnitCore.runClasses (Junit4AssertionTest.class);for (Échec d'échec: result.getFailures ()) {System.out.println (failure.toString ());}System.out.println ("Result ==" + result.wasSuccessful ());}}Étape 3) Permet d'analyser la sortie attendue étape par étape:
Considérez toutes les déclarations assert une par une:
- assertEquals (chaîne1, chaîne2);
Comparez maintenant string1 = "Junit" avec string2 = "Junit" avec la méthode equals de la classe d'objets. Remplacement de la méthode assertEquals de la méthode java.lang.Object.equals ():
string1.equals (string2) => renvoie vrai
Donc assertEquals (string1, string2) retournera true .
- assertSame (chaîne3, chaîne4);
La fonctionnalité "assertSame ()" consiste à vérifier que les deux objets font référence au même objet.
Puisque string3 = "test" et string4 = "test" signifie que string3 et string4 sont du même type, assertSame (string3, string4) retournera true .
- assertNotSame (chaîne1, chaîne3);
La fonctionnalité "assertNotSame ()" consiste à vérifier que les deux objets ne font pas référence au même objet.
Puisque string1 = "Junit" et string3 = "test" signifie que string1 et string3 sont de types différents, assertNotSame (string1, string3) retournera true .
- assertNotNull (chaîne1);
La fonctionnalité "assertNotNull ()" consiste à vérifier qu'un objet n'est pas nul.
Puisque string1 = "Junit" qui est une valeur non nulle, assertNotNull (string1) retournera true .
- assertNull (chaîne5);
La fonctionnalité "assertNull ()" consiste à vérifier qu'un objet est nul.
Puisque string5 = null qui est une valeur nulle, assertNull (string5) retournera true .
- assertTrue (variable1
La fonctionnalité "assertTrue ()" consiste à vérifier qu'une condition est vraie.
Puisque variable1 = 1 et variable2 = 2, qui montre que la condition variable1
true .
- assertArrayEquals (airethematicArrary1, airethematicArrary2);
La fonctionnalité "assertArrayEquals ()" consiste à vérifier que le tableau attendu et le tableau résultant sont égaux. Le type de tableau peut être int, long, short, char, byte ou java.lang.Object.
Puisque airethematicArrary1 = {1, 2, 3} et airethematicArrary2 = {1, 2, 3} qui montre que les deux tableaux sont égaux, assertArrayEquals (airethematicArrary1, airethematicArrary2) retournera true
Étant donné que les sept instructions assert de la classe Junit4AssertionTest.java retournent true, par conséquent, lorsque vous exécutez la classe d'assert test, elle renvoie un test réussi. (voir la sortie ci-dessous)
Étape 4) Faites un clic droit sur Junit4AssertionTest.java et cliquez sur runAs-> JUnit. Vous verrez la sortie comme indiqué ci-dessous:
La sortie ci-dessus montre un résultat de test réussi comme prévu.
Résumé:
Dans ce didacticiel, vous avez appris tous les types importants de méthodes d'assertion fournies par JUnit. De plus, vous avez vu les exemples d'instructions assert. Ce qui montre que si toutes les instructions assert renvoient true, l'interface graphique du test renverra un résultat vrai et si le test unique échoue, il renverra un résultat échoué.