JUnit предоставляет возможность отслеживать исключение, а также проверять, генерирует ли код ожидаемое исключение или нет.
Junit4 предоставляет простой и понятный способ тестирования исключений, вы можете использовать
- Необязательный параметр (ожидаемый) аннотации @test и
- Для отслеживания информации можно использовать "fail ()"
Во время тестирования исключения вам необходимо убедиться, что класс исключения, который вы указываете в необязательном параметре аннотации @test, такой же. Это связано с тем, что вы ожидаете исключения от метода, в котором вы выполняете модульное тестирование, иначе наш тест JUnit завершится неудачно.
Пример @ Test (ожидается = IllegalArgumentException.class)
Используя «ожидаемый» параметр, вы можете указать имя исключения, которое может вызвать наш тест. В приведенном выше примере вы используете « IllegalArgumentException», которое будет сгенерировано тестом, если разработчик использует недопустимый аргумент.
Пример использования @test (ожидается)
Давайте разберемся с тестированием исключений, создав класс Java с методом, генерирующим исключение. Вы справитесь с этим и протестируете в тестовом классе. Представьте, что JUnitMessage.java имеет метод, который просто выполняет математическую операцию на основе ввода, полученного пользователем. Если будет введен какой-либо недопустимый аргумент, он выдаст «ArithmeticException » . Смотри ниже:
пакет guru99.junit;public class JUnitMessage {личное строковое сообщение;public JUnitMessage (строковое сообщение) {this.message = сообщение;}public void printMessage () {System.out.println (сообщение);int div = 1/0;}public String printHiMessage () {message = "Привет!" + сообщение;System.out.println (сообщение);ответное сообщение;}}
Пояснение к коду:
- Строка кода 7: Создание параметризованного конструктора с инициализацией поля.
- Строка кода 11-14: Создание метода математической операции.
- Строка кода 18: Создание другого метода для печати сообщения.
- Строка кода 20: Создание новой строки для печати сообщения.
- Строка кода 21: печать нового сообщения, созданного в строке 20.
Давайте создадим тестовый класс для вышеуказанного java-класса, чтобы проверить исключение.
См. Ниже тестовый класс для исключения модульного теста (здесь ArithmeticException), выбрасывающего сверху java-класс:
AirthematicTest.java
пакет guru99.junit;import static org.junit.Assert.assertEquals;import org.junit.Test;public class AirthematicTest {общедоступное сообщение String = "Saurabh";JUnitMessage junitMessage = новый JUnitMessage (сообщение);@Test (ожидается = ArithmeticException.class)public void testJUnitMessage () {System.out.println («Сообщение Junit печатается»);junitMessage.printMessage ();}@Тестpublic void testJUnitHiMessage () {message = "Привет!" + сообщение;System.out.println («Сообщение Junit печатается»);assertEquals (сообщение, junitMessage.printMessage ());}}
Пояснение к коду:
- Строка кода 13: Использование аннотации @Test для создания нашего теста. Когда вы выполняете метод вышеуказанных классов, он вызывает математическую операцию. Здесь ожидается арифметическое исключение, поэтому вы указываете его как параметр в @Test.
- Строка кода 17: Вызов printMessage () JUnitMessage.java
- Строка кода 18: Создание другого метода для печати сообщения HI.
Если вы выполняете этот тестовый класс, тестовый метод выполняется с каждым определенным параметром. В приведенном выше примере метод тестирования выполняется пять раз.
Выполним и проверим результат. См. Ниже класс средства запуска тестов для выполнения JunitTestExample.java.
Выход:
Вот результат, который показывает успешный тест без трассировки сбоев, как показано ниже:
Резюме:
- Проверка исключений - это специальная функция, представленная в JUnit4. В этом руководстве вы узнали, как тестировать исключение в JUnit с помощью @test (за исключением).
- Junit предоставляет возможность отслеживать исключение, а также проверять, генерирует ли код исключение или нет.
- Для тестирования исключений вы можете использовать
- Необязательный параметр (ожидаемый) аннотации @test и
- Для отслеживания информации можно использовать "fail ()"