Czasami możesz wymagać, aby nie wykonywać metody / kodu lub przypadku testowego, ponieważ kodowanie nie jest w pełni wykonane. W przypadku tego konkretnego testu JUnit udostępnia adnotację @Ignore, aby pominąć test.
W tym samouczku nauczysz się:
- Co to jest adnotacja testowa JUnit @Ignore
- Przykład testu Junit - Ignoruj
- Tworzenie prostej klasy testowej bez ignorowania testu
- Zignoruj metodę testową za pomocą adnotacji @Ignore
- Używanie adnotacji @ ignore z warunkiem
- Zignoruj wszystkie metody testowe przy użyciu adnotacji @Ignore.
Co to jest adnotacja testowa JUnit @Ignore
Adnotacja testowa @Ignore służy do ignorowania określonych testów lub grupy testów w celu pominięcia niepowodzenia kompilacji.
@Ignore adnotacja może być używana w dwóch scenariuszach, jak podano 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.
Możesz podać przyczynę wyłączenia testu w opcjonalnym parametrze dostarczonym przez adnotację @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 adnotację @Ignore .
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.
Zrozummy to na prostym przykładzie i w poniższych scenariuszach:
- Tworzenie prostej klasy testowej bez ignorowania testu.
- Zignoruj metodę testową za pomocą adnotacji @Ignore.
- Zignoruj metodę testową przy użyciu adnotacji @Ignore, podając właściwy powód.
- Zignoruj wszystkie metody testowe przy użyciu adnotacji @Ignore.
Tworzenie prostej klasy testowej bez ignorowania testu
Stwórzmy prostą klasę Java, która drukuje dwa typy wiadomości.
- Pierwsza metoda wypisuje prostą wiadomość i
- Druga metoda wypisuje komunikat „cześć”
JUnitMessage.java
pakiet guru99.junit;public class JUnitMessage {prywatna wiadomość String;public JUnitMessage (wiadomość tekstowa) {this.message = wiadomość;}public String printMessage () {System.out.println (wiadomość);wiadomość zwrotna;}public String printHiMessage () {wiadomość = „Cześć!” + wiadomość;System.out.println (wiadomość);wiadomość zwrotna;}}
JunitTestExample.java
Utwórzmy klasę testową JUnit, aby przetestować JUnitMessage.java.
W tej klasie testowej JUnit
- Pierwszy test o nazwie "testJUnitMessage ()" testy "printMessage ()" metoda powyższej klasy.
- Podobnie drugi test, nazwany „testJUnitHiMessage”, testuje „testJUnitHiMessage” powyższej klasy.
pakiet guru99.junit;import static org.junit.Assert.assertEquals;import org.junit.Test;public class JunitTestExample {public String message = "Guru99";JUnitMessage junitMessage = nowy JUnitMessage (wiadomość);@Testpublic void testJUnitMessage () {System.out.println ("Trwa drukowanie komunikatu Junit");assertEquals (wiadomość, junitMessage.printMessage ());}@Testpublic void testJUnitHiMessage () {wiadomość = „Cześć!” + wiadomość;System.out.println ("Trwa drukowanie komunikatu Junit Hi");assertEquals (wiadomość, junitMessage.printHiMessage ());}}
TestRunner.java
Stwórzmy testową klasę uruchamiającą, aby wykonać JunitTestExample.java
pakiet 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) {Wynik wynikowy = JUnitCore.runClasses (JunitTestExample.class);for (Failure failure: result.getFailures ()) {System.out.println (failure.toString ());}System.out.println ("Wynik ==" + result.wasSuccessful ());}}
Wynik:
Wydrukuj instrukcję na konsoli:
Trwa drukowanie wiadomości Junit Hi Message
Cześć, Guru99
Trwa drukowanie wiadomości Junit
Guru99
Zignoruj metodę testową za pomocą adnotacji @Ignore
Utwórzmy ignoruj test, 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 testJUnitMessage () z JunitTestExample.java
JunitTestExample.java
pakiet 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 = nowy JUnitMessage (wiadomość);@Ignorować@Testpublic void testJUnitMessage () {System.out.println ("Trwa drukowanie komunikatu Junit");assertEquals (wiadomość, junitMessage.printMessage ());}@Testpublic void testJUnitHiMessage () {wiadomość = „Cześć!” + wiadomość;System.out.println ("Trwa drukowanie komunikatu Junit Hi");assertEquals (wiadomość, junitMessage.printHiMessage ());}}
Wynik:
Wykonajmy i zweryfikujmy wyjście z powyższego przykładu.
Poniższe dane wyjściowe pokazują, że jeden test został pominięty (wyłączony), patrz zaznaczone poniżej:
Wydrukuj instrukcję na konsoli:
Trwa drukowanie wiadomości Junit Hi Message
Cześć, Guru99
Używanie adnotacji @ ignore z warunkiem
Weźmy przykład, jak zignorować test i zdefiniujmy wraz z nim powód ignorowania. Jak omówiono powyżej, aby podać przyczynę, masz jeden opcjonalny parametr w adnotacji @Ignore, w którym możesz podać instrukcję przyczyny.
JunitTestExample.java
pakiet 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 = nowy JUnitMessage (wiadomość);@Ignore ("jeszcze nie gotowy, zignoruj.")@Testpublic void testJUnitMessage () {System.out.println ("Trwa drukowanie komunikatu Junit");assertEquals (wiadomość, junitMessage.printMessage ());}@Testpublic void testJUnitHiMessage () {wiadomość = „Cześć!” + wiadomość;System.out.println ("Trwa drukowanie komunikatu Junit Hi");assertEquals (wiadomość, junitMessage.printHiMessage ());}}
Wynik:
Jak powyżej.
Zignoruj wszystkie metody testowe przy użyciu adnotacji @Ignore.
Jak wspomniano 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:
pakiet guru99.junit;import static org.junit.Assert.assertEquals;import org.junit.Ignore;import org.junit.Test;@Ignorowaćpublic class JunitTestExample {public String message = "Guru99";JUnitMessage junitMessage = nowy JUnitMessage (wiadomość);@Testpublic void testJUnitMessage () {System.out.println ("Trwa drukowanie komunikatu Junit");assertEquals (wiadomość, junitMessage.printMessage ());}@Testpublic void testJUnitHiMessage () {wiadomość = „Cześć!” + wiadomość;System.out.println ("Trwa drukowanie komunikatu Junit Hi");assertEquals (wiadomość, junitMessage.printHiMessage ());}}
Wynik :
Wydrukuj instrukcję na konsoli:
Ponieważ oba testy zostały pominięte przy użyciu @Ignore na poziomie klasy, żadna instrukcja nie zostanie wydrukowana na konsoli.
Podsumowanie:
W tym samouczku nauczyłeś się ignorować pojedynczy test, grupę testów lub wszystkie testy, używając adnotacji @Ignore.
@Ignore adnotacja może być używana w dwóch scenariuszach, jak podano 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.
Dowiedziałeś się również, jak przekazać oświadczenie, aby zrozumieć innego programistę, dlaczego dany test jest wyłączony.