Учебники

8) JUnit Exception Test

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

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

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

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

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

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

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

Давайте разберемся в тестировании исключений, создав класс Java с методом, генерирующим исключение. Вы справитесь с этим и протестируете его в тестовом классе. Рассмотрим JUnitMessage.java, имеющий метод, который просто выполняет математическую операцию на основе ввода, полученного пользователем. Если будет введен любой недопустимый аргумент, он выдаст «ArithmeticException » . См. ниже:

JUnit Exception 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

JUnit Exception Test

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

Вывод:

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

JUnit Exception Test

Резюме:

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