Test oczekiwanego wyjątku JUnit: @Test (oczekiwany)

Spisie treści:

Anonim

JUnit zapewnia możliwość śledzenia wyjątku, a także sprawdzenia, czy kod zgłasza oczekiwany wyjątek, czy nie.

Junit4 zapewnia łatwy i czytelny sposób testowania wyjątków, którego możesz użyć

  • Opcjonalny parametr (oczekiwany) adnotacji @test i
  • Aby prześledzić informacje, można użyć funkcji „fail ()”

Podczas testowania wyjątku musisz upewnić się, że klasa wyjątku, którą podajesz w tym opcjonalnym parametrze adnotacji @test, jest taka sama. Dzieje się tak, ponieważ spodziewasz się wyjątku od metody testowania jednostkowego, w przeciwnym razie nasz test JUnit zakończy się niepowodzeniem.

Przykład @ Test (oczekiwano = IllegalArgumentException.class)

Używając parametru „oczekiwany”, możesz określić nazwę wyjątku, który może zgłosić nasz test. W powyższym przykładzie używasz „ IllegalArgumentException”, który zostanie wyrzucony przez test, jeśli programista użyje niedozwolonego argumentu.

Przykład z użyciem @test (oczekiwano)

Zrozummy testowanie wyjątków, tworząc klasę Java z metodą zgłaszającą wyjątek. Poradzisz sobie z tym i przetestujesz to w klasie testowej. Rozważmy, że JUnitMessage.java ma metodę, która po prostu wykonuje operację matematyczną na podstawie danych wejściowych otrzymanych przez użytkownika. Jeśli zostałby wprowadzony jakikolwiek niedozwolony argument, zgłosi „ArithmeticException . Zobacz poniżej:

pakiet guru99.junit;public class JUnitMessage {prywatna wiadomość String;public JUnitMessage (wiadomość tekstowa) {this.message = wiadomość;}public void printMessage () {System.out.println (wiadomość);int divide = 1/0;}public String printHiMessage () {wiadomość = „Cześć!” + wiadomość;System.out.println (wiadomość);wiadomość zwrotna;}}

Objaśnienie kodu:

  • Linia kodu 7: Tworzenie sparametryzowanego konstruktora z inicjalizacją pola.
  • Linia kodu 11-14: Tworzenie metody operacji matematycznej.
  • Linia kodu 18: Tworzenie innej metody drukowania wiadomości.
  • Code Line 20: Tworzenie nowego ciągu znaków do wydrukowania wiadomości.
  • Linia kodu 21: Drukowanie nowej wiadomości utworzonej w linii 20.

Utwórzmy klasę testową dla powyższej klasy java, aby zweryfikować wyjątek.

Zobacz poniżej klasę testową do wyjątku testu jednostkowego (tutaj ArithmeticException) rzucającego z powyższej klasy java:

AirthematicTest.java

pakiet guru99.junit;import static org.junit.Assert.assertEquals;import org.junit.Test;public class AirthematicTest {public String message = "Saurabh";JUnitMessage junitMessage = nowy JUnitMessage (wiadomość);@Test (oczekiwano = ArithmeticException.class)public void testJUnitMessage () {System.out.println ("Trwa drukowanie komunikatu Junit");junitMessage.printMessage ();}@Testpublic void testJUnitHiMessage () {wiadomość = „Cześć!” + wiadomość;System.out.println ("Trwa drukowanie komunikatu Junit");assertEquals (wiadomość, junitMessage.printMessage ());}}

Objaśnienie kodu:

  • Linia kodu 13: Używanie adnotacji @Test do tworzenia naszego testu. Kiedy wykonujesz metodę z powyższych klas, wywoła ona operację matematyczną. Tutaj oczekiwany jest wyjątek arytmetyczny, więc wymieniasz go jako parametr w @Test.
  • Linia kodu 17: Wywołanie printMessage () JUnitMessage.java
  • Code Line 18: Tworzenie innej metody drukowania komunikatu HI.

Jeśli wykonujesz tę klasę testową, metoda testowa jest wykonywana z każdym zdefiniowanym parametrem. W powyższym przykładzie metoda testowa jest wykonywana pięć razy.

Wykonajmy to i zweryfikujmy wynik. Zobacz poniżej klasę uruchamiającą test, aby wykonać JunitTestExample.java

Wynik:

Oto dane wyjściowe, które pokazują pomyślny test bez śladu awarii, jak podano poniżej:

Podsumowanie:

  • Testowanie wyjątków to specjalna funkcja wprowadzona w JUnit4. W tym samouczku nauczyłeś się testować wyjątek w JUnit za pomocą @test (z wyjątkiem)
  • Junit udostępnia narzędzie do śledzenia wyjątku, a także do sprawdzania, czy kod zgłasza wyjątek, czy nie
  • Do testowania wyjątków możesz użyć
    • Opcjonalny parametr (oczekiwany) adnotacji @test i
    • Aby prześledzić informacje, można użyć funkcji „fail ()”