Junit Assert & AssertEquals mit Beispiel
Was ist Junit Assert?
Assert ist eine Methode, die zum Bestimmen des Bestehens- oder Nichtbestehensstatus eines Testfalls nützlich ist. Die Assert-Methoden werden von der Klasse org.junit.Assert bereitgestellt, die die Klasse java.lang.Object erweitert.
Es gibt verschiedene Arten von Behauptungen wie Boolean, Null, Identisch usw.
Junit bietet eine Klasse namens Assert, die eine Reihe von Assert-Methoden bereitstellt, die beim Schreiben von Testfällen und zum Erkennen von Testfehlern nützlich sind.
Die Assert-Methoden werden von der Klasse bereitgestellt org.junit.Assert das erstreckt sich java.lang.Object Klasse.
JUnit Assert-Methoden
Boolean
Wenn Sie die booleschen Bedingungen (true oder false) testen möchten, können Sie folgende Assert-Methoden verwenden
- assertTrue (Bedingung)
- assertFalse (Bedingung)
Hier ist die Bedingung ein boolescher Wert.
Nullobjekt
Wenn Sie den Anfangswert eines Objekts/einer Variablen überprüfen möchten, stehen Ihnen folgende Methoden zur Verfügung:
- behauptenNull(Objekt)
- affirmNotNull(object)
Hier ist Objekt Java Objekt z.B behauptenNull(tatsächlich);
Identische
Wenn Sie überprüfen möchten, ob die Objekte identisch (dh zwei Referenzen auf dasselbe Java-Objekt vergleichend) oder unterschiedlich sind.
- behauptenSame(erwartet, tatsächlich), Es wird true zurückgegeben, wenn erwartet == tatsächlich
- behauptenNotSame(erwartet, tatsächlich)
Gleich behaupten
Wenn Sie die Gleichheit zweier Objekte testen möchten, stehen Ihnen folgende Methoden zur Verfügung
- affirmEquals(erwartet, tatsächlich)
Es wird true zurückgeben, wenn: erwartet.equals( tatsächlich ) gibt true zurück.
Array-Gleichheit bestätigen
Wenn Sie die Gleichheit von Arrays testen möchten, stehen Ihnen die folgenden Methoden zur Verfügung:
- behauptenArrayEquals(erwartet, tatsächlich)
Die obige Methode muss für jeden gültigen Wert verwendet werden, wenn Arrays die gleiche Länge haben i, können Sie es wie folgt überprüfen:
- affirmEquals(expected[i],actual[i])
- affirmArrayEquals(expected[i],actual[i])
Fehlermeldung
Wenn Sie einen Assertionsfehler auslösen möchten, müssen Sie dies tun scheitern() Das führt immer zu einem Fehlurteil.
- Fehler (Nachricht);
Sie können eine Assertion-Methode mit einer zusätzlichen haben Schnur Parameter als ersten Parameter. Diese Zeichenfolge wird an die Fehlermeldung angehängt, wenn die Behauptung fehlschlägt. Z.B fehlgeschlagen (Nachricht) kann geschrieben werden als
- affirmEquals( Nachricht, erwartet, tatsächlich)
JUnit behauptenGleich
Sie haben affirmEquals(a,b) die auf die angewiesen ist gleich () Methode der Object-Klasse.
- Hier wird es ausgewertet als a.equals( b ).
- Hier wird die zu testende Klasse verwendet, um eine geeignete Gleichheitsrelation zu ermitteln.
- Wenn eine Klasse die nicht überschreibt gleich () Methode von Betreff Klasse erhält sie das Standardverhalten von gleich () Methode, also Objektidentität.
If a und b sind Primitive wie Byte, int, boolean, usw., dann wird Folgendes für assertEquals(a,b) ausgeführt:
a und b werden in den entsprechenden Wrapper-Objekttyp konvertiert (Byte, Ganzzahl, Booleanusw.) und dann a.equals( b ) wird ausgewertet.
Beispiel: Betrachten Sie die unten genannten Zeichenfolgen mit denselben Werten. Testen wir sie mit „assertTrue“.
String obj1="Junit"; String obj2="Junit"; assertEquals(obj1,obj2);
Die obige Assert-Anweisung gibt „true“ zurück, da obj1.equals(obj2) „true“ zurückgibt.
Gleitkomma-Behauptungen
Wenn Sie Gleitkommatypen vergleichen möchten (z. B doppelt or schweben), benötigen Sie einen zusätzlichen erforderlichen Parameter Delta um Probleme mit Rundungsfehlern bei Gleitkommavergleichen zu vermeiden.
Die Aussage wird wie folgt ausgewertet:
- Math.abs(erwartet – tatsächlich) <= Delta
Beispielsweise:
affirmEquals( aDoubleWert, ein andererDoubleWert, 0.001 )
JUnit Beispiel behaupten
Das folgende Beispiel zeigt, wie eine Bedingung mithilfe von aktiviert wird JUnit Assert-Methoden.
Erstellen wir eine einfache Testklasse mit dem Namen Junit4AssertionTest.java und eine Testläuferklasse TestRunner.java.
Sie werden einige Variablen und wichtige Assert-Anweisungen erstellen JUnit.
In diesem Beispiel führen Sie unsere Testklasse mit TestRunner.java aus
Schritt 1) Erstellen wir eine Klasse, die alle wichtigen Assert-Anweisungsmethoden in JUnit abdeckt:
Junit4AssertionTest.java
package guru99.junit; import static org.junit.Assert.*; import org.junit.Test; public class Junit4AssertionTest { @Test public void testAssert(){ //Variable declaration String string1="Junit"; String string2="Junit"; String string3="test"; String string4="test"; String string5=null; int variable1=1; int variable2=2; int[] airethematicArrary1 = { 1, 2, 3 }; int[] airethematicArrary2 = { 1, 2, 3 }; //Assert statements assertEquals(string1,string2); assertSame(string3, string4); assertNotSame(string1, string3); assertNotNull(string1); assertNull(string5); assertTrue(variable1<variable2); assertArrayEquals(airethematicArrary1, airethematicArrary2); } }
Schritt 2) Sie müssen eine Test-Runner-Klasse erstellen, um die obige Klasse auszuführen:
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) { Result result = JUnitCore.runClasses(Junit4AssertionTest.class); for (Failure failure : result.getFailures()) { System.out.println(failure.toString()); } System.out.println("Result=="+result.wasSuccessful()); } }
Schritt 3) Lassen Sie uns die erwartete Ausgabe Schritt für Schritt analysieren:
Betrachten Sie alle Assert-Anweisungen einzeln:
- affirmEquals(string1,string2);
Vergleichen Sie nun string1=”Junit” mit string2=”Junit” mit der Equals-Methode der Objektklasse. Ersetzen der assertEquals-Methode durch die java.lang.Object.equals()-Methode:
string1.equals(string2)=> gibt true zurück
Daher wird „assertEquals(string1,string2)“ zurückgegeben was immer dies auch sein sollte..
- behauptenSame(string3, string4);
Die Funktion „assertSame()“ besteht darin, zu überprüfen, ob die beiden Objekte auf dasselbe Objekt verweisen.
Da string3=“test“ und string4=“test“ bedeuten, dass sowohl string3 als auch string4 vom gleichen Typ sind, wird „assertSame(string3, string4)“ zurückgegeben was immer dies auch sein sollte..
- behauptenNotSame(string1, string3);
Die Funktion „assertNotSame()“ besteht darin, zu überprüfen, ob die beiden Objekte nicht auf dasselbe Objekt verweisen.
Da string1=”Junit” und string3=”test” bedeutet, dass sowohl string1 als auch string3 unterschiedliche Typen sind, wird assertNotSame(string1, string3) zurückgegeben. was immer dies auch sein sollte..
- behauptenNotNull(string1);
Die Funktion „assertNotNull()“ besteht darin, zu überprüfen, ob ein Objekt nicht null ist.
Da string1= „Junit“ ein Wert ungleich Null ist, wird assertNotNull(string1) zurückgegeben. was immer dies auch sein sollte..
- behauptenNull(string5);
Die Funktion „assertNull()“ besteht darin, zu überprüfen, ob ein Objekt null ist.
Da „string5= null“ ein Nullwert ist, wird „asserNull(string5)“ zurückgegeben was immer dies auch sein sollte..
- behauptenTrue(variable1
Die Funktion „assertTrue()“ besteht darin, zu überprüfen, ob eine Bedingung wahr ist.
Da Variable1=1 und Variable2=2, was zeigt, dass Variable1 was immer dies auch sein sollte..
- behauptenArrayEquals(airethematicArrary1, airethematicArrary2);
Die Funktion „assertArrayEquals()“ besteht darin, zu überprüfen, ob das erwartete Array und das resultierende Array gleich sind. Der Array-Typ kann int, long, short, char, byte oder java.lang.Object sein.
Da airethematicArrary1 = { 1, 2, 3 } und airethematicArrary2 = { 1, 2, 3 }, was zeigt, dass beide Arrays gleich sind, wird „assertArrayEquals(airethematicArrary1, airethematicArrary2)“ zurückgegeben was immer dies auch sein sollte.
Da alle sieben Aussagen von behaupten Junit4AssertionTest.java Die Klasse gibt „true“ zurück. Wenn Sie also die Test-Assertion-Klasse ausführen, wird ein erfolgreicher Test zurückgegeben. (siehe Ausgabe unten)
Schritt 4) Klicken Sie mit der rechten Maustaste auf Junit4AssertionTest.java und klicken Sie auf runAs->JUnit. Sie sehen die Ausgabe wie folgt:
Die obige Ausgabe zeigt wie erwartet ein erfolgreiches Testergebnis.
Zusammenfassung
In diesem Tutorial haben Sie alle wichtigen Arten von Assertionsmethoden kennengelernt, die von bereitgestellt werden JUnit. Außerdem haben Sie Beispiele für Assert-Anweisungen gesehen. Dies zeigt, dass die Test-GUI ein wahres Ergebnis zurückgibt, wenn alle Assert-Anweisungen „true“ zurückgeben, und wenn der einzelne Test fehlschlägt, wird ein fehlgeschlagenes Ergebnis zurückgegeben.