JUnit @Ignorovat anotaci testu s příkladem

Někdy můžete vyžadovat, abyste nespouštěli metodu/kód nebo Testovací případ protože kódování není provedeno úplně. Pro ten konkrétní test, JUnit poskytuje @Ignorovat anotace pro přeskočení testu.

Co je to JUnit @Ignorovat anotaci testu

Anotace testu @Ignore se používá k ignorování konkrétních testů nebo skupiny testů, aby se přeskočilo selhání sestavení.

@Ignorovat anotaci lze použít ve dvou scénářích, jak je uvedeno níže:

  1. Pokud chcete ignorovat testovací metodu, použijte @Ignore spolu s anotací @Test.
  2. Pokud chcete ignorovat všechny testy třídy, použijte anotaci @Ignore na úrovni třídy.

Důvod pro deaktivaci testu můžete uvést ve volitelném parametru poskytnutém anotací @Ignore.

Pomůže to ostatním vývojářům pracujícím na stejném kódu pochopit, proč je konkrétní test zakázán? Když je problém tohoto konkrétního testu vyřešen, můžete jej jednoduše povolit odebráním @Ignorovat anotaci.

Příklad testu Junit – Ignorovat

Jak je uvedeno ve výše uvedené definici, můžete použít anotaci @Ignore k ignorování testu nebo skupiny testu.

Pojďme to pochopit na jednoduchém příkladu a v níže uvedených scénářích:

  1. Vytvoření jednoduché testovací třídy bez ignorování testu.
  2. Ignorujte testovací metodu pomocí anotace @Ignore.
  3. Ignorujte testovací metodu pomocí anotace @Ignore s náležitým důvodem.
  4. Ignorujte všechny testovací metody pomocí anotace @Ignore.

Vytvoření jednoduché testovací třídy bez ignorování testu

Vytvořme jednoduchý Java třída, která tiskne dva typy zpráv.

  • První metoda vytiskne jednoduchou zprávu a
  • Druhá metoda vytiskne zprávu „ahoj“.

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

Vytvořme a JUnit zkušební třída k testování JUnitMessage.java.

V tomto JUnit zkušební třída,

  • První test s názvem „testJUnitMessage()” testuje metodu “printMessage()” výše uvedené třídy.
  • Podobně druhý test s názvem „testJUnitHiMessage“ testuje „testJUnitHiMessage“ výše uvedené třídy.
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

Vytvořme třídu testovacího běžce pro spuštění 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());							
   }		
}      	

Výstup:

Vytvoření třídy jednoduchého testu bez ignorování testu

Tisk výpisu na konzoli:

Tiskne se zpráva Junit Ahoj

Ahoj! Guru99

Zpráva Junit se tiskne

Guru99

Ignorujte testovací metodu pomocí anotace @Ignore

Vytvořme test ignorování pro zakázání testu ve výše uvedeném příkladu. K tomu musíte použít @Ignore v metodě, kterou chcete přeskočit.

Udělejme to na zkouškuJUnitMessage() z 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());					

    }		
}

Výstup:

Pojďme provést a ověřit výstup výše uvedeného příkladu.

Níže uvedený výstup ukazuje, že jeden test byl přeskočen (zakázán), viz níže:

Vytvoření třídy jednoduchého testu bez ignorování testu

Tisk výpisu na konzoli:

Tiskne se zpráva Junit Ahoj

Ahoj! Guru99

Použití @ ignorovat anotace s podmínkou

Vezměme si příklad, jak ignorovat test, a spolu s ním definujte důvod ignorování. Jak bylo uvedeno výše, pro uvedení důvodu máte jeden volitelný parametr v anotaci @Ignore, kde můžete uvést důvod.

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

    }		
}		

Výstup:

Stejné jako výše.

Ignorujte všechny testovací metody pomocí anotace @Ignore.

Jak bylo uvedeno výše, abyste ignorovali všechny testy ve třídě, musíte na úrovni třídy použít anotaci @Ignore.

Upravme výše uvedený příklad, abychom pochopili, jak ignorovat všechny testy:

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

    }		
}		

Výstup:

Ignorujte testovací metody pomocí @Ignore anotace

Tisk výpisu na konzoli:

Protože oba testy byly přeskočeny použitím @Ignore na úrovni třídy, na konzole by se nevytisklo žádné prohlášení.

Shrnutí

V tomto tutoriálu jste se naučili ignorovat jeden test, skupinu testů nebo všechny testy pomocí anotace @Ignore.

@Ignorovat anotaci lze použít ve dvou scénářích, jak je uvedeno níže:

  1. Pokud chcete ignorovat testovací metodu, použijte @Ignore spolu s anotací @Test.
  2. Pokud chcete ignorovat všechny testy třídy, použijte anotaci @Ignore na úrovni třídy.

Také jste se naučili, jak poskytnout prohlášení, abyste ostatním vývojářům porozuměli, proč je konkrétní test zakázán.