Manchmal müssen Sie möglicherweise keine Methode / keinen Code oder Testfall ausführen, da die Codierung nicht vollständig erfolgt. Für diesen bestimmten Test bietet JUnit eine Annotation @Ignore , um den Test zu überspringen.
In diesem Tutorial lernen Sie:
- Was ist die JUnit @ Ignor-Testanmerkung?
- Junit-Testbeispiel - Ignorieren
- Erstellen einer einfachen Testklasse ohne Ignorieren eines Tests
- Ignorieren Sie eine Testmethode mit der Annotation @Ignore
- Verwenden der @ Ignorieren-Annotation mit Bedingung
- Ignorieren Sie alle Testmethoden mit der Annotation @Ignore.
Was ist die JUnit @ Ignor-Testanmerkung?
Die @ Annore-Testanmerkung wird verwendet, um bestimmte Tests oder Testgruppen zu ignorieren und den Buildfehler zu überspringen.
Die @ Ignore- Annotation kann in zwei Szenarien verwendet werden, wie unten angegeben:
- Wenn Sie eine Testmethode ignorieren möchten, verwenden Sie @Ignore zusammen mit der @ Test-Annotation.
- Wenn Sie alle Klassentests ignorieren möchten, verwenden Sie die Annotation @Ignore auf Klassenebene.
Sie können den Grund für das Deaktivieren eines Tests in dem optionalen Parameter angeben, der durch die Annotation @Ignore bereitgestellt wird.
Es wird anderen Entwicklern helfen, an demselben Code zu arbeiten, um zu verstehen, warum ein bestimmter Test deaktiviert ist. Wenn das Problem mit diesem bestimmten Test behoben ist, können Sie ihn einfach aktivieren, indem Sie die Annotation @Ignore entfernen .
Junit-Testbeispiel - Ignorieren
Wie in der obigen Definition erläutert, können Sie die Annotation @Ignore verwenden, um einen Test oder eine Gruppe des Tests zu ignorieren.
Lassen Sie es uns anhand eines einfachen Beispiels und in den folgenden Szenarien verstehen:
- Erstellen einer einfachen Testklasse ohne Ignorieren eines Tests.
- Ignorieren Sie eine Testmethode mit der Annotation @Ignore.
- Ignorieren Sie eine Testmethode mit der @ Ignore-Annotation aus dem richtigen Grund.
- Ignorieren Sie alle Testmethoden mithilfe der Annotation @Ignore.
Erstellen einer einfachen Testklasse ohne Ignorieren eines Tests
Erstellen wir eine einfache Java-Klasse, die zwei Arten von Nachrichten druckt.
- Erste Methode druckt eine einfache Nachricht und
- Die zweite Methode gibt eine "Hallo" -Nachricht aus
JUnitMessage.java
Paket guru99.junit;öffentliche Klasse JUnitMessage {private String-Nachricht;public JUnitMessage (String message) {this.message = message;}}public String printMessage () {System.out.println (Nachricht);Rückmeldung;}}public String printHiMessage () {message = "Hi!" + message;System.out.println (Nachricht);Rückmeldung;}}}}
JunitTestExample.java
Erstellen wir eine JUnit-Testklasse, um JUnitMessage.java zu testen.
In dieser JUnit-Testklasse
- Erster Test mit dem Namen "testJUnitMessage ()" testet die Methode "printMessage ()" der obigen Klasse.
- In ähnlicher Weise testet der zweite Test mit dem Namen "testJUnitHiMessage" "testJUnitHiMessage" der obigen Klasse.
Paket guru99.junit;statische org.junit.Assert.assertEquals importieren;import org.junit.Test;öffentliche Klasse JunitTestExample {public String message = "Guru99";JUnitMessage junitMessage = neue JUnitMessage (Nachricht);@Prüfungpublic void testJUnitMessage () {System.out.println ("Junit-Nachricht wird gedruckt");assertEquals (message, junitMessage.printMessage ());}}@Prüfungpublic void testJUnitHiMessage () {message = "Hi!" + Nachricht;System.out.println ("Junit Hi Message wird gedruckt");assertEquals (message, junitMessage.printHiMessage ());}}}}
TestRunner.java
Erstellen wir eine Test-Runner-Klasse, um JunitTestExample.java auszuführen
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 (JunitTestExample.class);for (Fehler Fehler: result.getFailures ()) {System.out.println (fail.toString ());}}System.out.println ("Result ==" + result.wasSuccessful ());}}}}
Ausgabe:
Anweisung auf Konsole drucken:
Junit Hi Message wird gedruckt
Hi! Guru99
Junit Message wird gedruckt
Guru99
Ignorieren Sie eine Testmethode mit der Annotation @Ignore
Lassen Sie uns einen Ignoriertest erstellen, um einen Test im obigen Beispiel zu deaktivieren. Dazu müssen Sie @Ignore in der Methode verwenden, die Sie überspringen möchten.
Machen wir es für testJUnitMessage () von JunitTestExample.java
JunitTestExample.java
Paket guru99.junit;statische org.junit.Assert.assertEquals importieren;import org.junit.Ignore;import org.junit.Test;öffentliche Klasse JunitTestExample {public String message = "Guru99";JUnitMessage junitMessage = neue JUnitMessage (Nachricht);@Ignorieren@Prüfungpublic void testJUnitMessage () {System.out.println ("Junit-Nachricht wird gedruckt");assertEquals (message, junitMessage.printMessage ());}}@Prüfungpublic void testJUnitHiMessage () {message = "Hi!" + Nachricht;System.out.println ("Junit Hi Message wird gedruckt");assertEquals (message, junitMessage.printHiMessage ());}}}}
Ausgabe:
Lassen Sie uns die Ausgabe des obigen Beispiels ausführen und überprüfen.
Die folgende Ausgabe zeigt, dass ein Test übersprungen (deaktiviert) ist (siehe unten):
Anweisung auf Konsole drucken:
Junit Hi Message wird gedruckt
Hi! Guru99
Verwenden der @ Ignorieren-Annotation mit Bedingung
Nehmen wir das Beispiel, wie ein Test ignoriert wird, und definieren Sie den Grund für das Ignorieren. Wie oben erläutert, haben Sie zur Angabe eines Grunds einen optionalen Parameter in der Annotation @Ignore, in dem Sie die Begründung für den Grund angeben können.
JunitTestExample.java
Paket guru99.junit;statische org.junit.Assert.assertEquals importieren;import org.junit.Ignore;import org.junit.Test;öffentliche Klasse JunitTestExample {public String message = "Guru99";JUnitMessage junitMessage = neue JUnitMessage (Nachricht);@Ignore ("noch nicht fertig, bitte ignorieren.")@Prüfungpublic void testJUnitMessage () {System.out.println ("Junit-Nachricht wird gedruckt");assertEquals (message, junitMessage.printMessage ());}}@Prüfungpublic void testJUnitHiMessage () {message = "Hi!" + Nachricht;System.out.println ("Junit Hi Message wird gedruckt");assertEquals (message, junitMessage.printHiMessage ());}}}}
Ausgabe:
Das gleiche wie oben.
Ignorieren Sie alle Testmethoden mit der Annotation @Ignore.
Wie oben erläutert, müssen Sie auf Klassenebene die Annotation @Ignore verwenden, um alle Tests in der Klasse zu ignorieren.
Lassen Sie uns das obige Beispiel ändern, um zu verstehen, wie alle Tests ignoriert werden:
Paket guru99.junit;statische org.junit.Assert.assertEquals importieren;import org.junit.Ignore;import org.junit.Test;@Ignorierenöffentliche Klasse JunitTestExample {public String message = "Guru99";JUnitMessage junitMessage = neue JUnitMessage (Nachricht);@Prüfungpublic void testJUnitMessage () {System.out.println ("Junit-Nachricht wird gedruckt");assertEquals (message, junitMessage.printMessage ());}}@Prüfungpublic void testJUnitHiMessage () {message = "Hi!" + Nachricht;System.out.println ("Junit Hi Message wird gedruckt");assertEquals (message, junitMessage.printHiMessage ());}}}}
Ausgabe :
Anweisung auf Konsole drucken:
Da beide Tests mit @Ignore auf Klassenebene übersprungen wurden, wurde keine Anweisung auf der Konsole gedruckt.
Zusammenfassung:
In diesem Lernprogramm haben Sie gelernt, wie Sie einen einzelnen Test, eine Testgruppe oder alle Tests mithilfe der Annotation @Ignore ignorieren.
Die @ Ignore- Annotation kann in zwei Szenarien verwendet werden, wie unten angegeben:
- Wenn Sie eine Testmethode ignorieren möchten, verwenden Sie @Ignore zusammen mit der @ Test-Annotation.
- Wenn Sie alle Klassentests ignorieren möchten, verwenden Sie die Annotation @Ignore auf Klassenebene.
Sie haben auch gelernt, wie Sie eine Erklärung abgeben, um anderen Entwicklern zu erklären, warum ein bestimmter Test deaktiviert ist.