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 ()»