JUnit @Ignorera testanteckning med exempel

Ibland kan du behöva att inte köra en metod/kod eller Testfall eftersom kodning inte görs fullt ut. För just det testet, JUnit ger @Strunta i anteckning för att hoppa över testet.

Vad är JUnit @Ignorera testanteckning

@Ignorera testanteckningen används för att ignorera särskilda tester eller grupp av tester för att hoppa över byggfelet.

@Strunta i annotering kan användas i två scenarier enligt nedan:

  1. Om du vill ignorera en testmetod, använd @Ignorera tillsammans med @Test-kommentaren.
  2. Om du vill ignorera alla klassens tester, använd @Ignorera annotering på klassnivå.

Du kan ange orsaken till att ett test inaktiverats i den valfria parametern som tillhandahålls av @Ignorera annotering.

Det kommer att hjälpa andra utvecklare som arbetar med samma kod, att förstå "varför ett visst test är inaktiverat?" När problemet med det specifika testet är åtgärdat kan du helt enkelt aktivera det genom att ta bort det @Ignorera anteckning.

Junit Test Exempel – Ignorera

Som diskuterats i ovanstående definition kan du använda @Ignorera annotering för att ignorera ett test eller en grupp av testet.

Låt oss förstå det med ett enkelt exempel och i nedanstående scenarier:

  1. Skapa en enkel testklass utan att ignorera ett test.
  2. Ignorera en testmetod med @Ignorera annotering.
  3. Ignorera en testmetod med @Ignorera annotering med rätt anledning.
  4. Ignorera alla testmetoder med @Ignorera annotering.

Skapa en enkel testklass utan att ignorera ett test

Låt oss skapa en enkel Java klass som skriver ut två typer av meddelanden.

  • Första metoden skriver ut ett enkelt meddelande och
  • Den andra metoden skriver ut ett "hej"-meddelande

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

Låt oss skapa en JUnit testklass för att testa JUnitMessage.java.

I detta JUnit testklass,

  • Första testet, som heter "testJUnitMessage()" testar "printMessage()"-metoden av ovanstående klass.
  • På samma sätt det andra testet, som heter "testJUnitHiMessage" testar "testJUnitHiMessage” av ovanstående klass.
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

Låt oss skapa en testlöparklass för att köra 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());							
   }		
}      	

Produktion:

Skapa en enkel testklass utan att ignorera ett test

Skriv ut uttalande på konsolen:

Junit Hi Message skrivs ut

Hej!Guru99

Junit Message skrivs ut

Guru99

Ignorera en testmetod med @Ignorera annotering

Låt oss skapa ignoreringstest för att inaktivera ett test i exemplet ovan. För detta måste du använda @Ignorera i metoden du vill hoppa över.

Låt oss göra det för testJUnitMessage() från 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());					

    }		
}

Produktion:

Låt oss köra och verifiera utdata från ovanstående exempel.

Nedan utdata visar att ett test har hoppats över (inaktiverat), se enligt nedan:

Skapa en enkel testklass utan att ignorera ett test

Skriv ut uttalande på konsolen:

Junit Hi Message skrivs ut

Hej!Guru99

Använd @ ignorera anteckning med villkor

Låt oss ta exemplet med hur man ignorerar ett test och definierar orsaken till att ignorera tillsammans med det. Som diskuterats ovan, för att ange en orsak har du en valfri parameter i @Ignorera annotering där du kan ange orsaksförklaringen.

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());					

    }		
}		

Produktion:

Samma som ovan.

Ignorera alla testmetoder med @Ignorera annotering.

Som diskuterats ovan för att ignorera alla tester i klassen, måste du använda @Ignorera annotering på klassnivå.

Låt oss ändra ovanstående exempel för att förstå hur man ignorerar alla tester:

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());					

    }		
}		

Utgång:

Ignorera testmetoder med @Ignorera anteckning

Skriv ut uttalande på konsolen:

Eftersom båda testerna hoppade över genom att använda @Ignore på klassnivå så skulle inget uttalande skrivas ut på konsolen.

Sammanfattning

I den här handledningen lärde du dig hur du ignorerar ett enskilt test, en grupp av test eller alla tester genom att använda @Ignorera annotering.

@Strunta i annotering kan användas i två scenarier enligt nedan:

  1. Om du vill ignorera en testmetod, använd @Ignorera tillsammans med @Test-kommentaren.
  2. Om du vill ignorera alla klassens tester, använd @Ignorera annotering på klassnivå.

Du lärde dig också hur du ger ett uttalande för att förstå andra utvecklare, varför ett visst test är inaktiverat.

Läs mer Readmore