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

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

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

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

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

Example@Test(expected=IllegalArgumentException.class)

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

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

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

Приклад використання @Test

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

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

вихід:

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

AirthematicTest.Java Вихід

Підсумки

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