JUnit Тест очікуваного винятку: @Test(очікується)
JUnit надає можливість відстежити виняткову ситуацію, а також перевірити, чи код викликає очікувану виняткову ситуацію чи ні.
Junit4 надає простий і зрозумілий спосіб тестування винятків, яким ви можете скористатися
- Необов’язковий параметр (очікується) анотації @test і
- Для відстеження інформації можна використовувати «fail()».
У той час як Тестування виняток, вам потрібно переконатися, що клас винятків ви надаєте в цьому додатковому параметрі анотація @test те ж саме. Це тому, що ви очікуєте винятку з методу, яким ви є Unit Testing, інакше наш JUnit тест буде невдалим.
Example@Test(expected=IllegalArgumentException.class)
Використовуючи параметр «expected», ви можете вказати ім’я винятку, яке може викликати наш тест. У прикладі вище ви використовуєте "IllegalArgumentException” який буде видано тестом, якщо розробник використовує недозволений аргумент.
Приклад використання @test(очікується)
Давайте розберемося з тестуванням винятків, створивши a Java клас із методом, що створює виняток. Ви впораєтеся з ним і перевірите його на тестовому занятті. Розглянемо JUnitMessage.java має метод, який просто виконує математичну операцію на основі вхідних даних, отриманих користувачем. Якщо буде введено будь-який недопустимий аргумент, буде видано «ArithmeticException». Дивись нижче:
package guru99.junit; public class JUnitMessage{ private String message; public JUnitMessage(String message) { this.message = message; } public void printMessage(){ System.out.println(message); int divide=1/0; } public String printHiMessage(){ message="Hi!" + message; System.out.println(message); return message; } }
Пояснення коду:
- Рядок коду 7: Створення параметризованого конструктора з ініціалізацією поля.
- Рядок коду 11-14: Створення методу математичних операцій.
- Рядок коду 18: Створення іншого способу друку повідомлення.
- Рядок коду 20: Створення нового рядка для друку повідомлення.
- Рядок коду 21: Друк нового повідомлення, створеного в рядку 20.
Давайте створимо тестовий клас для вищезгаданого класу Java, щоб перевірити винятки.
Нижче наведено виняток тестового класу для модульного тесту (тут ArithmeticException), який викидає зверху клас Java:
AirthematicTest.java
package guru99.junit; import static org.junit.Assert.assertEquals; import org.junit.Test; public class AirthematicTest { public String message = "Saurabh"; JUnitMessage junitMessage = new JUnitMessage(message); @Test(expected = ArithmeticException.class) public void testJUnitMessage(){ System.out.println("Junit Message is printing "); junitMessage.printMessage(); } @Test public void testJUnitHiMessage(){ message="Hi!" + message; System.out.println("Junit Message is printing "); assertEquals(message, junitMessage.printMessage()); } }
Пояснення коду:
- Рядок коду 13: Використання анотації @Test для створення нашого тесту. Коли ви виконуєте вищевказаний метод класів, він викличе математичну операцію. Тут очікується арифметичний виняток, тому ви вказуєте його як параметр у @Test.
- Рядок коду 17: Виклик printMessage() JUnitMessage.java
- Рядок коду 18: Створення іншого методу для друку повідомлення HI.
Якщо ви виконуєте цей тестовий клас, тестовий метод виконується з кожним визначеним параметром. У наведеному вище прикладі тестовий метод виконується п’ять разів.
Давайте виконаємо його і перевіримо результат. Нижче наведено тестовий клас, який потрібно виконати JunitTestExample.java
вихід:
Ось вихідні дані, які показують успішний тест без відстеження помилок, як наведено нижче:
Підсумки
- Тестування винятків — це спеціальна функція, представлена в JUnit4. У цьому підручнику ви навчилися перевіряти винятки в JUnit використовуючи @test (за винятком)
- Junit надає можливість відстежити виняток, а також перевірити, чи створює код виняток чи ні
- Для перевірки винятків ви можете використовувати
- Необов’язковий параметр (очікується) анотації @test і
- Для відстеження інформації можна використовувати «fail()».