В разработке программного обеспечения модульное тестирование — это процесс, который изолирует и тестирует отдельные разделы приложения. Единицы — это формальный термин для этих специализированных разделов. В вашем Java-приложении единицей является метод.
Для Java-разработчиков доступно множество сред модульного тестирования. Среди лучших фреймворков — JUnit 5.
Почему модульное тестирование важно?
Если вы когда-либо писали операторы отладки для вывода и проверки значения переменной, поздравляю; вы создали модульный тест. Этот одноразовый фрагмент кода был необходим, потому что вы не получали желаемого результата.
Но что, если вы получаете желаемый результат, а код все еще содержит ошибку? Вы можете развернуть приложение, и эта ошибка может привести к нарушению безопасности позже. Для приложений, которые хранят данные пользователей, ставки высоки, когда есть нарушение безопасности.
Модульное тестирование нацелено на каждый раздел вашего приложения — независимо от того, вызывает ли он в данный момент ошибку или нет. Таким образом, модульное тестирование играет важную роль в
хорошая безопасность программного обеспечения.Что такое Юнит 5?
JUnit 5 — это больше, чем просто еще одна среда модульного тестирования. У него есть несколько подпроектов, а именно платформа JUnit, JUnit Jupiter и JUnit Vintage. Каждый из этих трех компонентов имеет уникальные модули, которые вместе улучшают тестирование для Java-программистов.
Платформа JUnit 5 доступна в последних версиях лучших интегрированных платформ разработки Java (IDE). Java IDE, поддерживающие JUnit 5:
- IntelliJ ИДЕЯ
- Затмение
- NetBeans
- Код Visual Studio
Создание модульных тестов с помощью JUnit 5
В этом примере программы JUnit 5 используется для создания нескольких модульных тестов для простого приложения-калькулятора.
Класс калькулятора
упаковка приложение;
публичныйучебный классКалькулятор{
публичныйстатическийинтдобавлять(инт число1, инт число2){
возвращаться число1 + число2;
}публичныйстатическийинтвычесть(инт число1, инт число2){
возвращаться число1 - число2;
}публичныйстатическийинтумножать(инт число1, инт число2){
возвращаться число1 * число2;
}
публичныйстатическийинтразделять(инт число1, инт число2){
возвращаться число1 / число2;
}
}
Java-класс выше выполняет четыре статические операции: сложение, вычитание, умножение и деление. Каждый метод принимает два целочисленных аргумента и возвращает одно целочисленное значение.
Тестовый класс JUnit 5
упаковка тест;
импортстатический орг.юнит. Утверждать.*;
импорт приложение. Калькулятор;
импорторганизация.junit.Тест;публичныйучебный классКалькуляторТест{
@Тест
публичныйпустотатестДобавить(){
Утвердитьравно(7, Калькулятор.добавлять(3, 4));
}@Тест
публичныйпустотатестВычитание(){
Утвердитьравно(6, Калькулятор.вычесть(9, 3));
}@Тест
публичныйпустотатестумножить(){
Утвердитьравно(10, Калькулятор.умножить(5, 2));
}
@Тест
публичныйпустотатестРазделить(){
Утвердитьравно(2, Калькулятор.разделять(4, 2));
}
}
КалькуляторТест вводит два важных понятия: @Тест аннотация и утвердитьравно() метод. Аннотация @Test указывает, что метод непосредственно под ней является тестовым методом. В приведенном выше тестовом классе есть четыре метода тестирования, по одному для каждой операции калькулятора.
Все тестовые методы используют метод assertEquals(). Этот метод принимает два обязательных аргумента и необязательный третий аргумент. Первый аргумент, переданный вышеприведенному методу assertEquals(), — это ожидаемый результат, а второй аргумент — это метод (или модуль), который вы хотите оценить.
Класс CalculatorTest не имеет основного метода, но аннотации JUnit @Test делают каждый из тестовых методов исполняемым. Выполнение класса CalculatorTest в eclipse создает следующий интерфейс:
Как видите, каждый тест проходит успешно. Есть четыре теста, и все они прошли без ошибок или сбоев.
Модульное тестирование обучения может расширить ваши карьерные возможности
Для разработчика полезно знать, как тестировать программное обеспечение. Это, безусловно, улучшит ваш рабочий процесс и, надеюсь, облегчит использование вашего кода другими. Тем не менее, есть отрасль разработки программного обеспечения, которая сосредоточена исключительно на тестировании. Эти инженеры известны как тестировщики программного обеспечения.