Junit Assert & AssertEquals mit Beispiel

Inhaltsverzeichnis:

Anonim

Was ist Junit Assert?

Assert ist eine Methode, mit der der Pass- oder Fail-Status eines Testfalls ermittelt werden kann. 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, Identical usw.

Junit bietet eine Klasse mit dem Namen Assert, die eine Reihe von Assertionsmethoden bereitstellt, die zum Schreiben von Testfällen und zum Erkennen von Testfehlern nützlich sind

Die assert Methoden werden von der Klasse bereitgestellt org.junit.Assert der sich java.lang.Object Klasse.

In diesem Tutorial lernen Sie:

  • JUnit Assert-Methoden
  • Boolescher Wert
  • Null-Objekt
  • Identisch
  • Gleichsetzen
  • Assert Array Equals
  • Fehlermeldung
  • JUnit assertEquals
  • Gleitkomma-Aussagen
  • JUnit Assert-Beispiel

JUnit Assert-Methoden

Boolescher Wert

Wenn Sie die booleschen Bedingungen (wahr oder falsch) testen möchten, können Sie die folgenden Assert-Methoden verwenden

  1. assertTrue (Bedingung)
  2. assertFalse (Bedingung)

Hier ist die Bedingung ein boolescher Wert.

Null-Objekt

Wenn Sie den Anfangswert eines Objekts / einer Variablen überprüfen möchten, haben Sie folgende Methoden:

  1. assertNull (Objekt)
  2. assertNotNull (Objekt)

Hier ist das Objekt ein Java-Objekt, z. B. assertNull (aktuell);

Identisch

Wenn Sie überprüfen möchten, ob die Objekte identisch sind (dh zwei Verweise auf dasselbe Java-Objekt vergleichen) oder unterschiedlich.

  1. assertSame (erwartet, aktuell), Es wird true zurückgegeben, wenn erwartet == aktuell
  2. assertNotSame (erwartet, tatsächlich)

Gleichsetzen

Wenn Sie die Gleichheit zweier Objekte testen möchten, haben Sie die folgenden Methoden

  • assertEquals (erwartet, tatsächlich)

Es wird true zurückgegeben, wenn: expected.equals (actual) true zurückgibt.

Assert Array Equals

Wenn Sie die Gleichheit von Arrays testen möchten, haben Sie die folgenden Methoden:

  • assertArrayEquals (erwartet, tatsächlich)

Die obige Methode muss verwendet werden, wenn Arrays dieselbe Länge haben. Für jeden gültigen Wert für i können Sie ihn wie folgt überprüfen:

  • assertEquals (erwartet [i], tatsächlich [i])
  • assertArrayEquals (erwartet [i], tatsächlich [i])

Fehlermeldung

Wenn Sie einen Assertionsfehler auslösen möchten, haben Sie fail () , was immer zu einem Fehlurteil führt.

  • Fail (Nachricht);

Sie können eine Assertionsmethode mit einem zusätzlichen String- Parameter als erstem Parameter verwenden. Diese Zeichenfolge wird in die Fehlermeldung eingefügt, wenn die Zusicherung fehlschlägt. ZB Fail (Nachricht) kann geschrieben werden als

  • assertEquals (Nachricht, erwartet, aktuell)

JUnit assertEquals

Sie haben assertEquals (a, b), das auf der equals () -Methode der Object-Klasse basiert .

  • Hier wird es als a.equals (b) ausgewertet .
  • Hier wird anhand der zu testenden Klasse ein geeignetes Gleichheitsverhältnis ermittelt.
  • Wenn eine Klasse die equals () -Methode der Object- Klasse nicht überschreibt , erhält sie das Standardverhalten der equals () -Methode, dh die Objektidentität.

Wenn a und b Grundelemente wie Byte , Int , Boolescher Wert usw. sind, wird für assertEquals (a, b) Folgendes ausgeführt:

a und b werden in ihren äquivalenten Wrapper-Objekttyp ( Byte, Integer , Boolean usw.) konvertiert , und dann werden a.equals (b) ausgewertet.

Beispiel: Betrachten Sie die unten genannten Zeichenfolgen mit denselben Werten. Testen Sie 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-Aussagen

Wenn Sie Gleitkommatypen (z. B. Double oder Float ) vergleichen möchten , benötigen Sie einen zusätzlichen erforderlichen Parameter Delta , um Probleme mit Rundungsfehlern bei Gleitkomma-Vergleichen zu vermeiden.

Die Behauptung wird wie folgt bewertet:

  • Math.abs (erwartet - tatsächlich) <= Delta

Zum Beispiel:

assertEquals (aDoubleValue, anotherDoubleValue, 0,001)

JUnit Assert-Beispiel

Das folgende Beispiel zeigt, wie eine Bedingung mit JUnit-Assert-Methoden bestätigt wird.

Erstellen wir eine einfache Testklasse mit dem Namen Junit4AssertionTest.java und eine Testläuferklasse TestRunner.java .

Sie werden in JUnit nur wenige Variablen und wichtige Assert-Anweisungen erstellen.

In diesem Beispiel führen Sie unsere Testklasse mit TestRunner.java aus

Schritt 1) Erstellen Sie eine Klasse, die alle wichtigen Assert-Anweisungsmethoden in junit abdeckt:

Junit4AssertionTest.java

Paket guru99.junit;statische org.junit.Assert importieren. *;import org.junit.Test;öffentliche Klasse Junit4AssertionTest {@Prüfungpublic void testAssert () {//Variable AussageString 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};// Anweisungen bestätigenassertEquals (string1, string2);assertSame (string3, string4);assertNotSame (string1, string3);assertNotNull (string1);assertNull (string5);assertTrue (Variable1 

Schritt 2) Sie müssen eine Testläufer-Klasse erstellen, um die obige Klasse auszuführen:

TestRunner.java

Paket guru99.junit;import org.junit.runner.JUnitCore;import org.junit.runner.Result;import org.junit.runner.notification.Failure;öffentliche Klasse TestRunner {public static void main (String [] args) {Ergebnis result = JUnitCore.runClasses (Junit4AssertionTest.class);for (Fehler Fehler: result.getFailures ()) {System.out.println (fail.toString ());}}System.out.println ("Result ==" + result.wasSuccessful ());}}}}

Schritt 3) Lassen Sie uns die erwartete Ausgabe Schritt für Schritt analysieren:

Betrachten Sie alle Aussagen nacheinander:

  1. assertEquals (string1, string2);

Vergleichen Sie nun string1 = "Junit" mit string2 = "Junit" mit der Methode equals der Objektklasse. Ersetzen der assertEquals-Methode durch die java.lang.Object.equals () -Methode:

string1.equals (string2) => gibt true zurück

AssertEquals (string1, string2) gibt also true zurück .

  1. assertSame (string3, string4);

Mit der Funktion "assertSame ()" wird überprüft, ob sich die beiden Objekte auf dasselbe Objekt beziehen.

Da string3 = "test" und string4 = "test" bedeuten, dass sowohl string3 als auch string4 vom gleichen Typ sind, gibt assertSame (string3, string4) true zurück .

  1. assertNotSame (string1, string3);

Mit der Funktion "assertNotSame ()" wird überprüft, ob sich die beiden Objekte nicht auf dasselbe Objekt beziehen.

Da string1 = "Junit" und string3 = "test" bedeuten, dass sowohl string1 als auch string3 unterschiedlichen Typ sind, gibt assertNotSame (string1, string3) true zurück .

  1. assertNotNull (string1);

Mit der Funktion "assertNotNull ()" wird überprüft, ob ein Objekt nicht null ist.

Da string1 = "Junit" ist, was ein Wert ungleich Null ist, gibt assertNotNull (string1) true zurück .

  1. assertNull (string5);

Mit der Funktion "assertNull ()" wird überprüft, ob ein Objekt null ist.

Da string5 = null ist, was ein Nullwert ist, gibt assertNull (string5) true zurück .

  1. assertTrue (Variable1

Mit der Funktion "assertTrue ()" wird überprüft, ob eine Bedingung erfüllt ist.

Da Variable1 = 1 und Variable2 = 2 ist, was zeigt, dass die Bedingung Variable1 true zurück .

  1. assertArrayEquals (airethematicArrary1, airethematicArrary2);

Mit der Funktion "assertArrayEquals ()" wird überprüft, 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) true zurückgeben

Da alle sieben assert-Anweisungen der Junit4AssertionTest.java- Klasse true zurückgeben, wird beim Ausführen der Test-assert-Klasse ein erfolgreicher Test zurückgegeben. (siehe die 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 erwartungsgemäß ein erfolgreiches Testergebnis.

Zusammenfassung:

In diesem Tutorial haben Sie alle wichtigen Arten von Assertionsmethoden kennengelernt, die von JUnit bereitgestellt werden. Sie haben auch Beispiele für Assert-Anweisungen gesehen. Dies zeigt, dass, wenn alle assert-Anweisungen true zurückgeben, die Test-GUI ein true-Ergebnis zurückgibt und wenn der einzelne Test fehlschlägt, ein fehlgeschlagenes Ergebnis zurückgegeben wird.