Soms is het mogelijk dat u een methode / code of testcase niet hoeft uit te voeren omdat de codering niet volledig wordt uitgevoerd. Voor die specifieke test biedt JUnit @Ignore- annotatie om de test over te slaan.
In deze tutorial leer je-
- Wat is JUnit @Ignore testannotatie
- Junit-testvoorbeeld - negeren
- Een eenvoudige testklasse maken zonder een test te negeren
- Negeer een testmethode met de annotatie @Ignore
- Gebruik @ negeer annotatie met voorwaarde
- Negeer alle testmethoden met de annotatie @Ignore.
Wat is JUnit @Ignore testannotatie
De @Ignore-testannotatie wordt gebruikt om bepaalde tests of een groep tests te negeren om de build-fout over te slaan.
Annotatie @Ignore kan in twee scenario's worden gebruikt, zoals hieronder weergegeven:
- Als u een testmethode wilt negeren, gebruikt u @Ignore samen met @Test-annotatie.
- Als je alle tests van de klas wilt negeren, gebruik dan @Ignore annotatie op klasniveau.
U kunt de reden voor het uitschakelen van een test opgeven in de optionele parameter van @Ignore annotation.
Het helpt andere ontwikkelaars die aan hetzelfde stuk code werken, om te begrijpen "waarom een bepaalde test is uitgeschakeld?" Wanneer het probleem van die specifieke test is opgelost, kunt u deze eenvoudig inschakelen door de annotatie @Ignore te verwijderen .
Junit-testvoorbeeld - negeren
Zoals besproken in de bovenstaande definitie, kunt u de annotatie @Ignore gebruiken om een test of een groep van de test te negeren.
Laten we het begrijpen aan de hand van een eenvoudig voorbeeld en in 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 eenvoudige Java-klasse maken die twee soorten berichten afdrukt.
- De eerste methode drukt een eenvoudig bericht af en
- De tweede methode drukt een "hallo" bericht af
JUnitMessage.java
pakket guru99.junit;openbare klasse JUnitMessage {privé String-bericht;public JUnitMessage (String-bericht) {this.message = bericht;openbare String printMessage () {System.out.println (bericht);terug bericht;openbare String printHiMessage () {message = "Hallo!" + bericht;System.out.println (bericht);terug bericht;
JunitTestExample.java
Laten we een JUnit-testklasse maken om JUnitMessage.java te testen.
In deze JUnit-testklasse,
- Eerste test, genaamd "testJUnitMessage ()" tests "printMessage ()" methode van bovenstaande klasse.
- Evenzo test de tweede test, genaamd "testJUnitHiMessage", test "testJUnitHiMessage" van bovenstaande klasse.
pakket guru99.junit;importeer statische org.junit.Assert.assertEquals;importeer org.junit.Test;openbare klasse JunitTestExample {public String message = "Guru99";JUnitMessage junitMessage = nieuwe JUnitMessage (bericht);@Testopenbare ongeldige testJUnitMessage () {System.out.println ("Junit Message wordt afgedrukt");assertEquals (bericht, junitMessage.printMessage ());@Testopenbare ongeldige testJUnitHiMessage () {message = "Hallo!" + bericht;System.out.println ("Junit Hi Message wordt afgedrukt");assertEquals (bericht, junitMessage.printHiMessage ());
TestRunner.java
Laten we een testrunner-klasse maken om JunitTestExample.java uit te voeren
pakket guru99.junit;importeer org.junit.runner.JUnitCore;importeer org.junit.runner.Result;import org.junit.runner.notification.Failure;openbare klasse TestRunner {public static void main (String [] args) {Resultaat resultaat = JUnitCore.runClasses (JunitTestExample.class);voor (Failure failure: result.getFailures ()) {System.out.println (failure.toString ());System.out.println ("Result ==" + result.wasSuccessful ());
Uitgang:
Afdrukverklaring op console:
Junit Hi Bericht wordt afgedrukt
Hoi! Guru99
Junit-bericht wordt afgedrukt
Guru99
Negeer een testmethode met de annotatie @Ignore
Laten we een negeer-test maken om een test in het bovenstaande voorbeeld uit te schakelen. Hiervoor moet u @Ignore gebruiken in de methode die u wilt overslaan.
Laten we het doen voor testJUnitMessage () van JunitTestExample.java
JunitTestExample.java
pakket guru99.junit;importeer statische org.junit.Assert.assertEquals;importeer org.junit.Ignore;importeer org.junit.Test;openbare klasse JunitTestExample {public String message = "Guru99";JUnitMessage junitMessage = nieuwe JUnitMessage (bericht);@Negeren@Testopenbare ongeldige testJUnitMessage () {System.out.println ("Junit Message wordt afgedrukt");assertEquals (bericht, junitMessage.printMessage ());@Testopenbare ongeldige testJUnitHiMessage () {message = "Hallo!" + bericht;System.out.println ("Junit Hi Message wordt afgedrukt");assertEquals (bericht, junitMessage.printHiMessage ());
Uitgang:
Laten we de uitvoer van het bovenstaande voorbeeld uitvoeren en verifiëren.
Onderstaande output laat zien dat één test wordt overgeslagen (uitgeschakeld), zie zoals hieronder aangegeven:
Afdrukverklaring op console:
Junit Hi Bericht wordt afgedrukt
Hoi! Guru99
Gebruik @ negeer annotatie met voorwaarde
Laten we het voorbeeld nemen van het negeren van een test en de reden voor het negeren ervan samen met de test definiëren. Zoals hierboven besproken, heb je om een reden op te geven een optionele parameter in de annotatie @Ignore waar je de redenverklaring kunt opgeven.
JunitTestExample.java
pakket guru99.junit;importeer statische org.junit.Assert.assertEquals;importeer org.junit.Ignore;importeer org.junit.Test;openbare klasse JunitTestExample {public String message = "Guru99";JUnitMessage junitMessage = nieuwe JUnitMessage (bericht);@Ignore ("nog niet klaar, negeer alstublieft.")@Testopenbare ongeldige testJUnitMessage () {System.out.println ("Junit Message wordt afgedrukt");assertEquals (bericht, junitMessage.printMessage ());@Testopenbare ongeldige testJUnitHiMessage () {message = "Hallo!" + bericht;System.out.println ("Junit Hi Message wordt afgedrukt");assertEquals (bericht, junitMessage.printHiMessage ());
Uitgang:
Hetzelfde als hierboven.
Negeer alle testmethoden met de annotatie @Ignore.
Zoals hierboven besproken om alle tests in de klas te negeren, moet u annotatie @Ignore gebruiken op klasniveau.
Laten we het bovenstaande voorbeeld aanpassen om te begrijpen hoe we alle tests kunnen negeren:
pakket guru99.junit;importeer statische org.junit.Assert.assertEquals;importeer org.junit.Ignore;importeer org.junit.Test;@Negerenopenbare klasse JunitTestExample {public String message = "Guru99";JUnitMessage junitMessage = nieuwe JUnitMessage (bericht);@Testopenbare ongeldige testJUnitMessage () {System.out.println ("Junit Message wordt afgedrukt");assertEquals (bericht, junitMessage.printMessage ());@Testopenbare ongeldige testJUnitHiMessage () {message = "Hallo!" + bericht;System.out.println ("Junit Hi Message wordt afgedrukt");assertEquals (bericht, junitMessage.printHiMessage ());
Uitgang:
Afdrukverklaring op console:
Omdat beide tests werden overgeslagen door @Ignore op klassenniveau te gebruiken, zou er geen instructie op de console worden afgedrukt.
Overzicht:
In deze zelfstudie hebt u geleerd hoe u een enkele test, een testgroep of alle tests kunt negeren met behulp van @Ignore-annotatie.
Annotatie @Ignore kan in twee scenario's worden gebruikt, zoals hieronder weergegeven:
- Als u een testmethode wilt negeren, gebruikt u @Ignore samen met @Test-annotatie.
- Als je alle tests van de klas wilt negeren, gebruik dan @Ignore annotatie op klasniveau.
Je hebt ook geleerd hoe je een verklaring aflegt om andere ontwikkelaars te laten begrijpen waarom een bepaalde test is uitgeschakeld.