JUnit @Ignorer testanmærkning med eksempel
Nogle gange kan du kræve ikke at udføre en metode/kode eller Test sag fordi kodning ikke er fuldført. Til den specifikke test, JUnit giver @Ignorere anmærkning for at springe testen over.
Hvad er JUnit @Ignorer testanmærkning
@Ignorer testanmærkningen bruges til at ignorere bestemte tests eller gruppe af tests for at springe byggefejlen over.
@Ignorere annotering kan bruges i to scenarier som angivet nedenfor:
- Hvis du vil ignorere en testmetode, skal du bruge @Ignore sammen med @Test-annotering.
- Hvis du vil ignorere alle klassens test, skal du bruge @Ignore annotation på klasseniveau.
Du kan angive årsagen til at deaktivere en test i den valgfri parameter, der leveres af @Ignorer annotering.
Det vil hjælpe andre udviklere, der arbejder på det samme stykke kode, til at forstå "hvorfor en bestemt test er deaktiveret?" Når problemet med den pågældende test er løst, kan du blot aktivere den ved at fjerne @Ignorer anmærkning.
Junit Test Eksempel – Ignorer
Som diskuteret i ovenstående definition, kan du bruge @Ignorer annotering til at ignorere en test eller gruppe af testen.
Lad os forstå det ved hjælp af et simpelt eksempel og i nedenstående givne scenarier:
- Oprettelse af en simpel testklasse uden at ignorere en test.
- Ignorer en testmetode ved hjælp af @Ignorer annotering.
- Ignorer en testmetode ved hjælp af @Ignorer annotering med korrekt begrundelse.
- Ignorer alle testmetoder ved hjælp af @Ignorer annotering.
Oprettelse af en simpel testklasse uden at ignorere en test
Lad os skabe en enkel Java klasse, som udskriver to typer beskeder.
- Første metode udskriver en simpel besked og
- Den anden metode udskriver en "hej"-meddelelse
JUnitMessage.java
package guru99.junit; public class JUnitMessage { private String message; public JUnitMessage(String message) { this.message = message; } public String printMessage(){ System.out.println(message); return message; } public String printHiMessage(){ message="Hi!"+ message; System.out.println(message); return message; } }
JunitTestExample.java
Lad os skabe en JUnit test klasse for at teste JUnitMessage.java.
I denne JUnit test klasse,
- Første test, kaldet "testJUnitMessage()" tester "printMessage()"-metoden af ovenstående klasse.
- Tilsvarende den anden test, kaldet "testJUnitHiMessage" tester "testJUnitHiMessage" af ovenstående klasse.
package guru99.junit; import static org.junit.Assert.assertEquals; import org.junit.Test; public class JunitTestExample { public String message = "Guru99"; JUnitMessage junitMessage = new JUnitMessage(message); @Test public void testJUnitMessage() { System.out.println("Junit Message is printing"); assertEquals(message, junitMessage.printMessage()); } @Test public void testJUnitHiMessage() { message="Hi!" +message; System.out.println("Junit Hi Message is printing "); assertEquals(message, junitMessage.printHiMessage()); } }
TestRunner.java
Lad os oprette en testløber-klasse for at udføre JunitTestExample.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(JunitTestExample.class); for (Failure failure : result.getFailures()) { System.out.println(failure.toString()); } System.out.println("Result=="+result.wasSuccessful()); } }
Output:
Udskriv erklæring på konsollen:
Junit Hi Message udskrives
Hej!Guru99
Junit Message udskrives
Guru99
Ignorer en testmetode ved hjælp af @Ignorer annotering
Lad os oprette ignoreringstest for at deaktivere en test i ovenstående eksempel. Til dette skal du bruge @Ignore i den metode, du vil springe over.
Lad os gøre det til testJUnitBesked() fra JunitTestExample.java
JunitTestExample.java
package guru99.junit; import static org.junit.Assert.assertEquals; import org.junit.Ignore; import org.junit.Test; public class JunitTestExample { public String message = "Guru99"; JUnitMessage junitMessage = new JUnitMessage(message); @Ignore @Test public void testJUnitMessage() { System.out.println("Junit Message is printing "); assertEquals(message, junitMessage.printMessage()); } @Test public void testJUnitHiMessage() { message="Hi!" +message; System.out.println("Junit Hi Message is printing "); assertEquals(message, junitMessage.printHiMessage()); } }
Output:
Lad os udføre og verificere outputtet fra ovenstående eksempel.
Nedenstående output viser, at en test er sprunget over (deaktiveret), se som markeret nedenfor:
Udskriv erklæring på konsollen:
Junit Hi Message udskrives
Hej!Guru99
Brug @ ignorer annotering med betingelse
Lad os tage eksemplet med, hvordan man ignorerer en test og definerer årsagen til at ignorere sammen med den. Som diskuteret ovenfor, for at angive en årsag har du én valgfri parameter i @Ignorer annotering, hvor du kan angive årsagserklæringen.
JunitTestExample.java
package guru99.junit; import static org.junit.Assert.assertEquals; import org.junit.Ignore; import org.junit.Test; public class JunitTestExample { public String message = "Guru99"; JUnitMessage junitMessage = new JUnitMessage(message); @Ignore("not yet ready , Please ignore.") @Test public void testJUnitMessage() { System.out.println("Junit Message is printing "); assertEquals(message, junitMessage.printMessage()); } @Test public void testJUnitHiMessage() { message="Hi!" +message; System.out.println("Junit Hi Message is printing "); assertEquals(message, junitMessage.printHiMessage()); } }
Output:
Samme som ovenfor.
Ignorer alle testmetoder ved hjælp af @Ignorer annotering.
Som diskuteret ovenfor for at ignorere alle testene i klassen, skal du bruge @Ignorer annotering på klasseniveau.
Lad os ændre ovenstående eksempel for at forstå, hvordan man ignorerer alle testene:
package guru99.junit; import static org.junit.Assert.assertEquals; import org.junit.Ignore; import org.junit.Test; @Ignore public class JunitTestExample { public String message = "Guru99"; JUnitMessage junitMessage = new JUnitMessage(message); @Test public void testJUnitMessage() { System.out.println("Junit Message is printing "); assertEquals(message, junitMessage.printMessage()); } @Test public void testJUnitHiMessage() { message="Hi!" +message; System.out.println("Junit Hi Message is printing "); assertEquals(message, junitMessage.printHiMessage()); } }
Output:
Udskriv erklæring på konsollen:
Da begge testene sprang over ved at bruge @Ignore på klasseniveau, så ville ingen erklæring blive udskrevet på konsollen.
Resumé
I dette selvstudie lærte du, hvordan du ignorerer en enkelt test, gruppe af test eller alle test ved at bruge @Ignorer annotering.
@Ignorere annotering kan bruges i to scenarier som angivet nedenfor:
- Hvis du vil ignorere en testmetode, skal du bruge @Ignore sammen med @Test-annotering.
- Hvis du vil ignorere alle klassens test, skal du bruge @Ignore annotation på klasseniveau.
Du lærte også, hvordan du giver en erklæring for at forstå andre udviklere, hvorfor en bestemt test er deaktiveret.