Тест очікуваного винятку JUnit: @Test (очікуваний)

Зміст:

Anonim

JUnit надає можливість відстежувати виняток, а також перевіряти, чи додає код очікуваний виняток чи ні.

Junit4 забезпечує простий і читабельний спосіб тестування винятків, яким ви можете скористатися

  • Необов’язковий параметр (очікуваний) анотації @test та
  • Для відстеження інформації можна використовувати "fail ()"

Під час тестування винятків вам потрібно переконатися, що клас винятків, який ви надаєте в цьому необов’язковому параметрі анотації @test , однаковий. Це тому, що ви очікуєте винятку із методу, яким ви є Unit Testing, інакше наш тест JUnit не вдасться.

Приклад @ тест (очікується = IllegalArgumentException.class)

Використовуючи параметр "очікуваний", ви можете вказати назву винятку, яку може дати наш тест. У наведеному вище прикладі ви використовуєте " IllegalArgumentException", який буде видано тестом, якщо розробник використовує недопустимий аргумент.

Приклад використання @test (очікувано)

Давайте розберемося в тестуванні на винятки, створивши клас Java із методом, що створює виняток. Ви впораєтеся з цим і випробуєте в тестовому класі. Розглянемо JUnitMessage.java, який має метод, який просто виконує математичну операцію на основі введення, отриманого користувачем. Якщо буде введено будь-який незаконний аргумент, він видасть "ArithmeticException " . Дивись нижче:

пакет guru99.junit;відкритий клас JUnitMessage {приватне рядкове повідомлення;public JUnitMessage (рядкове повідомлення) {this.message = message;}public void printMessage () {System.out.println (повідомлення);int розділити = 1/0;}public String printHiMessage () {message = "Привіт!" + повідомлення;System.out.println (повідомлення);відповідне повідомлення;}}

Пояснення коду:

  • Рядок коду 7: Створення параметризованого конструктора з ініціалізацією поля.
  • Кодовий рядок 11-14: Створення методу математичної операції.
  • Кодовий рядок 18: Створення іншого методу друку повідомлення.
  • Кодовий рядок 20: Створення нового рядка для друку повідомлення.
  • Кодовий рядок 21: Друк нового повідомлення, створеного в рядку 20.

Давайте створимо тестовий клас для вищезазначеного класу Java, щоб перевірити виключення.

Див. Нижче клас тесту для винятку модульного тесту (ArithmeticException тут), викидаючи зверху клас Java:

AirthematicTest.java

пакет guru99.junit;імпортувати статичний org.junit.Assert.assertEquals;імпорт org.junit.Test;публічний клас AirthematicTest {повідомлення публічного рядка = "Saurabh";JUnitMessage junitMessage = новий JUnitMessage (повідомлення);@Test (очікується = ArithmeticException.class)public void testJUnitMessage () {System.out.println ("Junit Message is Print");junitMessage.printMessage ();}@ Тестpublic void testJUnitHiMessage () {message = "Привіт!" + повідомлення;System.out.println ("Junit Message is Print");assertEquals (message, junitMessage.printMessage ());}}

Пояснення коду:

  • Кодовий рядок 13: Використання анотації @Test для створення нашого тесту. Коли ви виконуєте метод вищевказаних класів, він викличе математичну операцію. Тут передбачається арифметичний виняток, тому ви перелічуєте його як параметр у @Test.
  • Рядок коду 17: Виклик printMessage () JUnitMessage.java
  • Кодовий рядок 18: Створення іншого методу друку повідомлення HI.

Якщо ви виконуєте цей тестовий клас, метод тестування виконується з кожним визначеним параметром. У наведеному вище прикладі метод тесту виконується п’ять разів.

Давайте виконаємо його та перевіримо результат. Дивіться нижче клас тестового бігуна для запуску JunitTestExample.java

Вихід:

Ось результат, який показує успішний тест без слідів відмов, як зазначено нижче:

Короткий зміст:

  • Тестування винятків - це спеціальна функція, представлена ​​в JUnit4. У цьому підручнику ви дізналися, як протестувати виняток у JUnit за допомогою @test (за винятком)
  • Junit надає можливість відстежувати виняток, а також перевіряти, чи створює код виняток чи ні
  • Для тестування на винятки ви можете використовувати
    • Необов’язковий параметр (очікуваний) анотації @test та
    • Для відстеження інформації можна використовувати "fail ()"