JUnit-Testfälle in Java: Einfaches JUnit 5.7.1 Hello World-Tutorial mit All-in-One-Details
Veröffentlicht: 2019-10-30
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:
- Behauptungen zum Testen der erwarteten Ergebnisse
- Testvorrichtungen zum Teilen gemeinsamer Testdaten
- 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.
1 2 3 4 5 |
< dependency > < groupId > junit < / groupId > < artifactId > junit < / artifactId > < version > 4.12 < / version > < / dependency > |
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.

Schritt 2
Klicken Sie mit der rechten Maustaste auf CrunchifyJunitTest
=> Neue Klasse => CrunchifyJunitTest.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
package com . crunchify . junit ; /** * @author Crunchify * */ import static org . junit . Assert . assertEquals ; import org . junit . Test ; public class CrunchifyJunitTest { @ Test public void testingCrunchifyAddition ( ) { assertEquals ( "Here is test for Addition Result: " , 30 , addition ( 27 , 3 ) ) ; } @ Test public void testingHelloWorld ( ) { assertEquals ( "Here is test for Hello World String: " , "Hello + World" , helloWorld ( ) ) ; } public int addition ( int x , int y ) { return x + y ; } public String helloWorld ( ) { String helloWorld = "Hello +" + " World" ; return helloWorld ; } } |
Schritt 3
Eclipse schlägt die Abhängigkeit org.junit.Test
vor und fügt sie automatisch hinzu, sobald Sie @Test eingeben .

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.

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.
1 2 3 4 5 6 7 8 9 |
@ Test public void testingCrunchifyAddition ( ) { assertEquals ( "Here is test for Addition Result: " , 300 , addition ( 27 , 3 ) ) ; } @ Test public void testingHelloWorld ( ) { assertEquals ( "Here is test for Hello World String: " , "Hello -- World" , helloWorld ( ) ) ; } |

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

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
package com . crunchify . junit ; import org . junit . runner . JUnitCore ; import org . junit . runner . Result ; import org . junit . runner . notification . Failure ; /** * @author Crunchify * */ public class CrunchifyRunnerJUnit { public static void main ( String [ ] args ) { Result result = JUnitCore . runClasses ( CrunchifyJunitTest . class ) ; for ( Failure failure : result . getFailures ( ) ) { System . out . println ( failure . toString ( ) ) ; } if ( result . wasSuccessful ( ) ) { System . out . println ( "Both Tests finished successfully..." ) ; } } } |
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:
1 |
Both Tests finished successfully . . . |
Schritt-9
Im Falle des 2nd code
(falscher erwarteter Parameter) sollten Sie so etwas sehen:
1 2 |
testingCrunchifyAddition ( com . crunchify . junit . CrunchifyJunitTest ) : Here is test for Addition Result : expected : < 300 > but was : < 30 > testingHelloWorld ( com . crunchify . junit . CrunchifyJunitTest ) : Here is test for Hello World String : expected : < Hello [ -- ] World > but was : < Hello [ + ] World > |
Und Sie sind bereit. Lassen Sie mich wissen, wenn Sie Probleme beim Ausführen dieses Codes feststellen.
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. |