JUnit @Ignore Test Annotation with Example

Inhoudsopgave:

Anonim

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:

  1. Als u een testmethode wilt negeren, gebruikt u @Ignore samen met @Test-annotatie.
  2. 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:

  1. Een eenvoudige testklasse maken zonder een test te negeren.
  2. Negeer een testmethode met de annotatie @Ignore.
  3. Negeer een testmethode met de annotatie @Ignore met de juiste reden.
  4. 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:

  1. Als u een testmethode wilt negeren, gebruikt u @Ignore samen met @Test-annotatie.
  2. 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.