JUnit @Negeer testannotatie met voorbeeld
Soms is het mogelijk dat u een methode/code niet hoeft uit te voeren of Testgeval omdat de codering niet volledig is uitgevoerd. Voor die specifieke test JUnit biedt @Negeren annotatie om de test over te slaan.
Wat is JUnit @Negeer testannotatie
De testannotatie @Ignore wordt gebruikt om bepaalde tests of een groep tests te negeren om zo de build-fout over te slaan.
@Negeren annotatie kan in twee scenario's worden gebruikt, zoals hieronder weergegeven:
- Als u een testmethode wilt negeren, gebruikt u @Ignore samen met de annotatie @Test.
- Als u alle tests van de klasse wilt negeren, gebruikt u de annotatie @Ignore op klasseniveau.
U kunt de reden voor het uitschakelen van een test opgeven in de optionele parameter die wordt verstrekt door de annotatie @Ignore.
Het zal andere ontwikkelaars die aan hetzelfde stuk code werken, helpen te begrijpen “waarom een bepaalde test is uitgeschakeld?” Wanneer het probleem van die specifieke test is opgelost, kunt u deze eenvoudig inschakelen door deze te verwijderen @Annotatie negeren.
Junit-testvoorbeeld – Negeren
Zoals besproken in de bovenstaande definitie, kunt u de annotatie @Ignore gebruiken om een test of groep van de test te negeren.
Laten we het begrijpen aan de hand van een eenvoudig voorbeeld en in de onderstaande scenario's:
- Een eenvoudige testklasse maken zonder een test te negeren.
- Negeer een testmethode met de annotatie @Ignore.
- Negeer een testmethode met de annotatie @Ignore met de juiste reden.
- Negeer alle testmethoden met de annotatie @Ignore.
Een eenvoudige testklasse maken zonder een test te negeren
Laten we een eenvoudig maken Java klasse die twee soorten berichten afdrukt.
- De eerste methode drukt een eenvoudig bericht af en
- De tweede methode drukt een "hallo" -bericht af
JUnitBericht.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
Laten we een maken JUnit testklas om te testen JUnitBericht.java.
In deze JUnit testklas,
- Eerste test, genaamd “testJUnitMessage()” test de “printMessage()”-methode van bovenstaande klasse.
- Op dezelfde manier is de tweede test, genaamd “testJUnitHiMessage”tests”testJUnitHiMessage” van bovenstaande 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
Laten we een testrunner-klasse maken om JunitTestExample.java uit te voeren
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:
Verklaring op console afdrukken:
Junit Hi Bericht wordt afgedrukt
Hallo!Guru99
Junit Bericht wordt afgedrukt
Guru99
Negeer een testmethode met de annotatie @Ignore
Laten we een negeertest maken om een test in het bovenstaande voorbeeld uit te schakelen. Hiervoor moet je @Ignore gebruiken in de methode die je wilt overslaan.
Laten we het doen als testJUnitBericht() van 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:
Laten we de uitvoer van het bovenstaande voorbeeld uitvoeren en verifiëren.
Onderstaande uitvoer laat zien dat één test wordt overgeslagen (uitgeschakeld), zie zoals hieronder aangegeven:
Verklaring op console afdrukken:
Junit Hi Bericht wordt afgedrukt
Hallo!Guru99
Met behulp van @ negeer annotatie met Voorwaarde
Laten we het voorbeeld nemen van hoe u een test negeert en de reden voor het negeren ervan definiëren. Zoals hierboven besproken, heeft u, om een reden op te geven, één optionele parameter in de @Ignore-annotatie, waar u de redenverklaring kunt opgeven.
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:
Hetzelfde als hierboven.
Negeer alle testmethoden met de annotatie @Ignore.
Zoals hierboven besproken, moet u, om alle tests in de klas te negeren, de annotatie @Ignore op klasniveau gebruiken.
Laten we het bovenstaande voorbeeld aanpassen om te begrijpen hoe u alle tests kunt negeren:
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:
Verklaring op console afdrukken:
Omdat beide tests werden overgeslagen door @Ignore op klasseniveau te gebruiken, werd er geen verklaring op de console afgedrukt.
Samenvatting
In deze zelfstudie hebt u geleerd hoe u een enkele toets, een groep toetsen of alle toetsen kunt negeren met behulp van de annotatie @Ignore.
@Negeren annotatie kan in twee scenario's worden gebruikt, zoals hieronder weergegeven:
- Als u een testmethode wilt negeren, gebruikt u @Ignore samen met de annotatie @Test.
- Als u alle tests van de klasse wilt negeren, gebruikt u de annotatie @Ignore op klasseniveau.
Je hebt ook geleerd hoe je een verklaring kunt geven om andere ontwikkelaars te laten begrijpen waarom een bepaalde test is uitgeschakeld.