JUnit @Ignore 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 biedt JUnit @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:

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

  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 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

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

Laten we een JUnit-testklasse maken om JUnitMessage.java te testen.

In deze JUnit-testles

  • De eerste test, genaamd “testJUnitMessage()”, test de “printMessage()”-methode van bovenstaande klasse.
  • Op dezelfde manier test de tweede test, genaamd "testJUnitHiMessage", "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 testrunnerklasse 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:

Een eenvoudige testklasse creëren zonder een test te negeren

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 voor testJUnitMessage() 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:

Een eenvoudige testklasse creëren zonder een test te negeren

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:

Negeer testmethoden met @Ignore-annotatie

Verklaring op console afdrukken:

Omdat beide tests werden overgeslagen door @Ignore op klasseniveau te gebruiken, werd er geen verklaring op de console afgedrukt.

Samengevat

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:

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