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:
- Pokud chcete ignorovat testovací metodu, použijte @Ignore spolu s anotací @Test.
- 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:
- Vytvoření jednoduché testovací třídy bez ignorování testu.
- Ignorujte testovací metodu pomocí anotace @Ignore.
- Ignorujte testovací metodu pomocí anotace @Ignore s náležitým důvodem.
- 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:
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:
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:
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:
- Pokud chcete ignorovat testovací metodu, použijte @Ignore spolu s anotací @Test.
- 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.



