JUnit-Testfälle in Java: Einfaches JUnit 5.7.1 Hello World-Tutorial mit All-in-One-Details

Veröffentlicht: 2019-10-30
java-junit-Beispiel

Was ist JUnit?

JUnit ist ein einfaches, leistungsstarkes Open-Source-Framework zum Schreiben und Ausführen wiederholbarer Tests. Ich liebe JUnit-Testfälle. Während meiner Java-Projektentwicklung verwende ich ausgiebig JUnit für die Codeabdeckung. Es ist eine Instanz der xUnit-Architektur für Komponententest-Frameworks.

Zu den JUnit-Funktionen gehören:

  1. Behauptungen zum Testen der erwarteten Ergebnisse
  2. Testvorrichtungen zum Teilen gemeinsamer Testdaten
  3. Testläufer für Lauftests

In diesem Tutorial werde ich Punkt 1 und 3 behandeln. Sie benötigen die folgenden Maven-Abhängigkeiten in Ihrem Projekt.

Beginnen wir mit dem Schreiben von Code.

Schritt 1

Erstellen Sie das Projekt CrunchifyJunitTest und geben Sie das Paket com.crunchify.junit . Hier ist eine Paketstruktur zum schnellen Nachschlagen.

Crunchify Eclipse-Struktur des JUnit-Projekts

Schritt 2

Klicken Sie mit der rechten Maustaste auf CrunchifyJunitTest => Neue Klasse => CrunchifyJunitTest.java

Schritt 3

Eclipse schlägt die Abhängigkeit org.junit.Test vor und fügt sie automatisch hinzu, sobald Sie @Test eingeben .

Eclipse Test Maven-Abhängigkeit

Schritt 4

Um Ihren JUnit-Test zu testen

  • Klicken Sie mit der rechten Maustaste auf die Klasse
  • Klicken Sie auf Ausführen als
  • Klicken Sie auf JUnit Test

Sie sollten so etwas sehen.

JUnit-Test erfolgreich

Schritt-5

Versuchen Sie, den Parameter für den erwarteten Wert der Methode von 30 => 300 und von Hello World => Hello -- World zu ändern, und testen Sie erneut.

JUnit-Test fehlgeschlagen - Crunchify-Tipps

Schritt-6

Lassen Sie uns nun denselben Testfall via other java -Programm ausführen. Erstellen Sie CrunchifyRunnerJUnit.java

Schritt-7

Führen CrunchifyRunnerJUnit.java als Java Application aus.

Schritt-8

Im Falle des 1st code (korrekter erwarteter Parameter) sollten Sie die Ausgabe wie folgt sehen:

Schritt-9

Im Falle des 2nd code (falscher erwarteter Parameter) sollten Sie so etwas sehen:

Und Sie sind bereit. Lassen Sie mich wissen, wenn Sie Probleme beim Ausführen dieses Codes feststellen.

JUnit-Tutorial von Crunchify

Verfügbare Annotation im JUnit-Testfall:

Anmerkung

Beschreibung

@Test öffentliche void-Methode() Die Annotation @Test kennzeichnet, dass eine Methode eine Testmethode ist.
@Before public void-Methode() Führt die Methode vor jedem Test aus. Diese Methode kann die Testumgebung vorbereiten (zB Eingabedaten lesen, Klasse initialisieren).
@After public void-Methode () Führt die Methode nach jedem Test aus. Diese Methode kann die Testumgebung bereinigen (z. B. temporäre Daten löschen, Standardwerte wiederherstellen).
@BeforeClass öffentliche void-Methode () Führt die Methode einmal aus, vor dem Start aller Tests. Dies kann verwendet werden, um zeitintensive Aktivitäten auszuführen, beispielsweise um eine Verbindung zu einer Datenbank herzustellen.
@AfterClass öffentliche void-Methode () Führt die Methode einmal aus, nachdem alle Tests abgeschlossen sind. Dies kann verwendet werden, um Bereinigungsaktivitäten durchzuführen, beispielsweise um die Verbindung zu einer Datenbank zu trennen.
@Ignorieren Wird die Testmethode ignorieren. Dies ist nützlich, wenn der zugrunde liegende Code geändert wurde und der Testfall noch nicht angepasst wurde. Oder wenn die Ausführungszeit dieses Tests zu lang ist, um aufgenommen zu werden.
@Test (erwartet = Exception.class) Schlägt fehl, wenn die Methode die benannte Ausnahme nicht auslöst.
@Test(timeout=100) Schlägt fehl, wenn die Methode länger als 100 Millisekunden dauert.

Verfügbare Assert-Testmethoden:

Aussage

Beschreibung

Fehler (Zeichenfolge) Lassen Sie die Methode scheitern. Kann verwendet werden, um zu überprüfen, ob ein bestimmter Teil des Codes nicht erreicht wird. Oder einen fehlgeschlagenen Test zu haben, bevor der Testcode implementiert wird.
behauptenWahr(wahr) / behauptenWahr(falsch) Wird immer wahr / falsch sein. Kann verwendet werden, um ein Testergebnis vorzugeben, wenn der Test noch nicht implementiert ist.
assertTrue([Nachricht], boolesche Bedingung) Überprüft, ob die boolesche Bedingung wahr ist.
assertsEquals([String message], erwartet, tatsächlich) Testet, ob zwei Werte gleich sind. Hinweis: Bei Arrays wird die Referenz überprüft, nicht der Inhalt des Arrays.
assertsEquals([String message], erwartet, tatsächlich, Toleranz) Testen Sie, ob Float- oder Double-Werte übereinstimmen. Die Toleranz ist die Anzahl der Dezimalstellen, die gleich sein müssen.
assertNull([Nachricht], Objekt) Überprüft, ob das Objekt null ist.
assertNotNull([Nachricht], Objekt) Überprüft, ob das Objekt nicht null ist.
assertSame([String], erwartet, tatsächlich) Überprüft, ob beide Variablen auf dasselbe Objekt verweisen.
assertNotSame([String], erwartet, tatsächlich) Überprüft, ob beide Variablen auf unterschiedliche Objekte verweisen.