Junit Assert & AssertEquals mit Beispiel
โก Intelligente Zusammenfassung
JUnit Die Methoden `Assert` und `AssertEquals` ermitteln den Status eines Testfalls (bestanden/nicht bestanden), indem sie erwartete und tatsรคchliche Werte vergleichen. Diese Ressource erlรคutert die von `org.junit.Assert` bereitgestellten `Assert`-Methoden, einschlieรlich der Assertions fรผr boolesche Werte, Nullwerte, Identitรคt, Gleichheit und Arrays, anhand eines vollstรคndigen Beispiels.

Was ist Junit Assert?
Die Methode `assert` dient dazu, den Status eines Testfalls (bestanden/nicht bestanden) zu ermitteln. Die `assert`-Methoden werden von der Klasse `org.junit.Assert` bereitgestellt, die von der Klasse `java.lang.Object` erbt.
Es gibt verschiedene Arten von Zusicherungen, wie z. B. Boolean, Null, Identical usw.
JUnit bietet eine Klasse namens Assert, die eine Reihe von Assertionsmethoden bereitstellt, die beim Schreiben von Testfรคllen und beim Erkennen von Testfehlern nรผtzlich sind.
Die Assert-Methoden werden von der Klasse bereitgestellt org.junit.Assert, was die java.lang.Object Klasse.
JUnit Assert-Methoden
Boolean
Wenn Sie boolesche Bedingungen (wahr oder falsch) testen mรถchten, kรถnnen Sie die folgenden 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)
Hierbei handelt es sich um ein Objekt. Java Objekt, z.B behauptenNull(tatsรคchlich);
Identische
Wenn Sie รผberprรผfen mรถchten, ob die Objekte identisch sind (d. h. zwei Referenzen auf dasselbe Objekt vergleichen). Java Objekt) oder anders:
- assertSame(expected, actual) โ Es wird wahr zurรผckgegeben, wenn erwartet == tatsรคchlich.
- behauptenNotSame(erwartet, tatsรคchlich)
Gleich behaupten
Um die Gleichheit zweier Objekte zu testen, steht Ihnen folgende Methode zur Verfรผgung:
- affirmEquals(erwartet, tatsรคchlich)
Es wird true zurรผckgegeben, wenn erwartet.gleich(tatsรคchlich) gibt true zurรผck.
Array-Gleichheit bestรคtigen
Um die Gleichheit von Arrays zu testen, steht Ihnen folgende Methode zur Verfรผgung:
- behauptenArrayEquals(erwartet, tatsรคchlich)
Die obige Methode muss verwendet werden, wenn die Arrays die gleiche Lรคnge haben. Fรผr jeden gรผltigen Wert fรผr i, kรถnnen Sie es wie folgt รผberprรผfen:
- assertEquals(expected[i], actual[i])
- assertArrayEquals(expected[i], actual[i])
Fehlermeldung
Wenn Sie einen Assertionsfehler auslรถsen mรถchten, mรผssen Sie dies tun scheitern()was stets zu einem negativen Urteil fรผhrt.
- fail(message);
Sie kรถnnen eine Assertionsmethode mit einem zusรคtzlichen Schnur Der Parameter wird als erster Parameter รผbergeben. Diese Zeichenkette wird an die Fehlermeldung angehรคngt, falls die Assertion fehlschlรคgt. Zum Beispiel: Fehler (Meldung) kann geschrieben werden als:
- assertEquals(message, expected, actual)
JUnit behauptenGleich
Sie haben assertEquals(a, b), die auf die gleich () Methode der Object-Klasse.
- Hier wird es ausgewertet als a.gleich(b).
- Hier wird die zu testende Klasse verwendet, um eine geeignete Gleichheitsrelation zu ermitteln.
- Wenn eine Klasse die nicht รผberschreibt gleich () Methode der Betreff Wenn diese Klasse das Standardverhalten erhรคlt, wird sie dieses Verhalten beibehalten. gleich () Methode, d. h. Objektidentitรคt.
If a und b sind Primitive wie Byte, int, booleanusw., dann wird fรผr assertEquals(a, b) Folgendes durchgefรผhrt:
a und b werden in den entsprechenden Wrapper-Objekttyp konvertiert (Byte, Integer, Booleanusw.) und dann a.gleich(b) wird ausgewertet.
Betrachten wir beispielsweise die unten genannten Zeichenketten mit gleichen Werten; testen wir dies mit assertEquals:
String obj1 = "Junit"; String obj2 = "Junit"; assertEquals(obj1, obj2);
Die obige Assert-Anweisung wird true zurรผckgeben, da obj1.equals(obj2) true zurรผckgibt.
Gleitkomma-Behauptungen
Wenn Sie Gleitkommazahlen 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(expected โ actual) <= delta
Beispielsweise:
assertEquals(aDoubleWert, ein andererDoubleWert, 0.001)
JUnit Beispiel behaupten
Das folgende Beispiel veranschaulicht, wie man eine Bedingung mithilfe von JUnit Assert-Methoden.
Lasst uns eine einfache Testklasse erstellen, die heiรt Junit4AssertionTest.java und eine Testlรคuferklasse TestRunner.java.
Sie werden einige Variablen und wichtige Assert-Anweisungen erstellen in JUnit.
In diesem Beispiel fรผhren Sie unsere Testklasse mit TestRunner.java aus.
Schritt 1) Lasst uns eine Klasse erstellen, die alle wichtigen Assert-Anweisungsmethoden abdeckt. JUnit:
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 wir alle Assert-Anweisungen nacheinander:
- assertEquals(string1, string2);
Vergleichen Sie nun string1="Junit" mit string2="Junit" mithilfe der equals-Methode der Klasse Object. Ersetzen Sie dazu die assertEquals-Methode durch die Methode java.lang.Object.equals().
string1.equals(string2) gibt true zurรผck
assertEquals(string1, string2) gibt also zurรผck was immer dies auch sein sollte..
- behauptenSame(string3, string4);
Die Funktion โassertSame()โ prรผft, ob zwei Objekte auf dasselbe Objekt verweisen. Da string3 = "test" und string4 = "test", sind sowohl string3 als auch string4 vom selben Typ, daher gibt assertSame(string3, string4) den Wert "test" zurรผck. was immer dies auch sein sollte..
- behauptenNotSame(string1, string3);
Die Funktion โassertNotSame()โ prรผft, ob zwei Objekte auf dasselbe Objekt verweisen. Da string1 = โJunitโ und string3 = โtestโ, sind string1 und string3 von unterschiedlichen Datentypen, daher gibt assertNotSame(string1, string3) โfalseโ zurรผck. was immer dies auch sein sollte..
- behauptenNotNull(string1);
Die Funktion โassertNotNull()โ prรผft, ob ein Objekt nicht null ist. Da string1 = โJunitโ ist und somit ein Wert ungleich null darstellt, gibt assertNotNull(string1) den Wert null zurรผck. was immer dies auch sein sollte..
- behauptenNull(string5);
Die Funktion โassertNull()โ prรผft, ob ein Objekt null ist. Da string5=null ist, also ein Nullwert vorliegt, gibt assertNull(string5) zurรผck, dass โฆ was immer dies auch sein sollte..
- assertTrue(variable1 < variable2);
Die Funktion โassertTrue()โ dient dazu, zu prรผfen, ob eine Bedingung erfรผllt ist. Da Variable1 = 1 und Variable2 = 2 ist, was bedeutet, dass die Bedingung Variable1 < Variable2 erfรผllt ist, gibt assertTrue(Variable1 < Variable2) den Wert โtrueโ zurรผck. was immer dies auch sein sollte..
- behauptenArrayEquals(airethematicArrary1, airethematicArrary2);
Die Funktion โassertArrayEquals()โ prรผft, ob das erwartete und das resultierende Array รผbereinstimmen. Der Typ des Arrays kann int, long, short, char, byte oder java.lang.Object sein. Da airethematicArrary1 = { 1, 2, 3 } und airethematicArrary2 = { 1, 2, 3 }, was bedeutet, dass beide Arrays gleich sind, gibt assertArrayEquals(airethematicArrary1, airethematicArrary2) den Wert โtrueโ zurรผck. was immer dies auch sein sollte..
Da alle sieben Aussagen der Junit4AssertionTest.java Wenn Sie die Assert-Klasse ausfรผhren und die Klasse true zurรผckgibt, wird ein erfolgreicher Test zurรผckgegeben (siehe Ausgabe unten).
Schritt 4) Klicken Sie mit der rechten Maustaste auf Junit4AssertionTest.java und klicken Sie auf Ausfรผhren als -> JUnit. Sie sehen die Ausgabe wie folgt:
Die obige Ausgabe zeigt, wie erwartet, ein erfolgreiches Testergebnis.

