JUnit предоставляет возможность отслеживать исключение, а также проверять, генерирует ли код ожидаемое исключение или нет.
Junit4 предоставляет простой и читаемый способ тестирования исключений, вы можете использовать
- Необязательный параметр (ожидаемый) аннотации @test и
- Для отслеживания информации можно использовать «fail ()»
При тестировании исключения необходимо убедиться, что класс исключений, который вы предоставляете в этом необязательном параметре аннотации @test, совпадает. Это связано с тем, что вы ожидаете исключения из метода, который вы используете для модульного тестирования , в противном случае наш тест JUnit не будет выполнен.
Пример @ Test (ожидаемый = IllegalArgumentException.class)
Используя «ожидаемый» параметр, вы можете указать имя исключения, которое может выдать наш тест. В приведенном выше примере вы используете « IllegalArgumentException», которое будет выдано тестом, если разработчик использует аргумент, который не разрешен.
Пример использования @test (ожидается)
Давайте разберемся в тестировании исключений, создав класс 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 ()»


