JUnit @Ignore Adnotacja testowa z przykładem
Czasami może być konieczne niewykonywanie metody/kodu lub Przypadek testowy ponieważ kodowanie nie zostało w pełni wykonane. W przypadku tego konkretnego testu JUnit zapewnia @Ignorować adnotacja o pominięciu testu.
Co to jest JUnit @Ignoruj adnotację testową
Adnotacja testu @Ignore służy do ignorowania określonych testów lub grupy testów w celu pominięcia niepowodzenia kompilacji.
@Ignorować adnotacji można użyć w dwóch scenariuszach podanych poniżej:
- Jeśli chcesz zignorować metodę testową, użyj @Ignore wraz z adnotacją @Test.
- Jeśli chcesz zignorować wszystkie testy klasy, użyj adnotacji @Ignore na poziomie klasy.
Powód wyłączenia testu możesz podać w opcjonalnym parametrze podanym w adnotacji @Ignore.
Pomoże to innym programistom pracującym nad tym samym fragmentem kodu zrozumieć, „dlaczego dany test jest wyłączony?” Gdy problem z tym konkretnym testem zostanie rozwiązany, możesz go po prostu włączyć, usuwając @Ignoruj adnotację.
Przykład testu Junit – Ignoruj
Jak omówiono w powyższej definicji, możesz użyć adnotacji @Ignore, aby zignorować test lub grupę testów.
Rozumiemy to na prostym przykładzie i w poniższych scenariuszach:
- Tworzenie prostej klasy testowej bez ignorowania testu.
- Ignoruj metodę testową, używając adnotacji @Ignore.
- Zignoruj metodę testową, używając adnotacji @Ignore z właściwego powodu.
- Zignoruj wszystkie metody testowe, używając adnotacji @Ignore.
Tworzenie prostej klasy testowej bez ignorowania testu
Stwórzmy proste Java klasa, która wypisuje dwa typy wiadomości.
- Pierwsza metoda wypisuje prosty komunikat i
- Druga metoda drukuje wiadomość „cześć”.
JUnitWiadomość.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
Stwórzmy plik JUnit klasa testowa do przetestowania JUnitWiadomość.java.
W tym JUnit klasa testowa,
- Pierwszy test o nazwie „testJUnitMessage()” testuje metodę „printMessage()” powyższej klasy.
- Podobnie drugi test, nazwany „testJUnitHiMessage” testuje “testJUnitHiMessage” powyższej klasy.
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
Utwórzmy klasę uruchamiającą testy, aby wykonać 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()); } }
Wyjście:
Wydrukuj instrukcję na konsoli:
Junit Cześć Wiadomość jest drukowana
Cześć!Guru99
Wiadomość Junit jest drukowana
Guru99
Ignoruj metodę testową za pomocą adnotacji @Ignore
Utwórzmy test ignorowania, aby wyłączyć test w powyższym przykładzie. W tym celu musisz użyć @Ignore w metodzie, którą chcesz pominąć.
Zróbmy to dla testuJUnitMessage() 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()); } }
Wyjście:
Wykonajmy i zweryfikujmy dane wyjściowe powyższego przykładu.
Poniższe dane wyjściowe pokazują, że jeden test został pominięty (wyłączony), patrz jak zaznaczono poniżej:
Wydrukuj instrukcję na konsoli:
Junit Cześć Wiadomość jest drukowana
Cześć!Guru99
Używanie adnotacji @ ignorowanie z warunkiem
Weźmy przykład zignorowania testu i zdefiniujmy wraz z nim przyczynę ignorowania. Jak omówiono powyżej, aby podać powód, masz jeden opcjonalny parametr w adnotacji @Ignore, w którym możesz podać powód.
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()); } }
Wyjście:
Jak powyżej.
Ignoruj wszystkie metody testowe, używając adnotacji @Ignore.
Jak omówiono powyżej, aby zignorować wszystkie testy w klasie, musisz użyć adnotacji @Ignore na poziomie klasy.
Zmodyfikujmy powyższy przykład, aby zrozumieć, jak zignorować wszystkie 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()); } }
wyjście:
Wydrukuj instrukcję na konsoli:
Ponieważ oba testy zostały pominięte przy użyciu @Ignore na poziomie klasy, więc na konsoli nie zostanie wydrukowana żadna instrukcja.
Podsumowanie
W tym samouczku nauczyłeś się ignorować pojedynczy test, grupę testów lub wszystkie testy za pomocą adnotacji @Ignore.
@Ignorować adnotacji można użyć w dwóch scenariuszach podanych poniżej:
- Jeśli chcesz zignorować metodę testową, użyj @Ignore wraz z adnotacją @Test.
- Jeśli chcesz zignorować wszystkie testy klasy, użyj adnotacji @Ignore na poziomie klasy.
Nauczyłeś się także, jak przedstawić oświadczenie, aby zrozumieć innego programistę, dlaczego dany test jest wyłączony.