JUnit Ожидаемый тест исключения: @Test(ожидается)

JUnit предоставляет возможность отслеживать исключение, а также проверять, выдает ли код ожидаемое исключение или нет.

Junit4 предоставляет простой и понятный способ тестирования исключений, вы можете использовать

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

В то время как Тестирование исключения, вам необходимо убедиться, что класс исключения, который вы указываете в этом необязательном параметре @test аннотация та же. Это потому, что вы ожидаете исключения из метода, который вы используете. Модульное тестирование, в противном случае наш JUnit тест провалится.

Пример@Test(ожидаемый=IllegalArgumentException.class)

Используя параметр «expected», вы можете указать имя исключения, которое может выдать наш тест. В приведенном выше примере вы используете «IllegalArgumentException» который будет выдан тестом, если разработчик использует недопустимый аргумент.

Пример использования @test(ожидается)

Давайте разберемся с тестированием исключений, создав 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() JUnitСообщение.java
  • Строка кода 18: Создание другого метода для печати сообщения HI.

Если вы выполняете этот тестовый класс, тестовый метод выполняется с каждым определенным параметром. В приведенном выше примере тестовый метод выполняется пять раз.

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

Вывод:

Вот выходные данные, показывающие успешный тест без следов сбоев, как показано ниже:

AirthematicTest.Java Результат

Резюме

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