- JUnit – это фреймворк для модульного (юнит) тестирования на Java.
- Используется для написания и выполнения автотестов.
- При тестировании все тестовые случаи должны выполняться заново каждый раз, когда добавляется новый код, чтобы убедиться, что ничего не нарушено.
Подпишитесь на наш ТЕЛЕГРАМ КАНАЛ ПО АВТОМАТИЗАЦИИ ТЕСТИРОВАНИЯ
Юнит-тестирование
- Юнит-тестирование относится к тестированию небольших фрагментов кода
- Помогает выявлять дефекты на ранних стадиях
- Разработчики тратят больше времени на чтение кода
- Успешно написанные тесты повышают уверенность разработчиков в коде и качестве
Установка JUnit
Шаг 1: Требуется JDK (Java Development Kit).
Шаг 2: любая интегрированная среда разработки (IDE). Можно использовать Eclipse.
Шаг 3: jar-файлы JUnit
Если вы используете инструмент Maven для автоматической сборки проекта, то вам нужно добавить эту зависимость в файл pom.xml
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13</version> <scope>test</scope> </dependency>
Особенности JUnit
- JUnit – это фреймворк с открытым исходным кодом.
- Предоставляет аннотации для маркировки методов как методов тестирования.
- JUnit имеет ассерты (asserts), которые помогают проверить соответствие ожидаемого результата фактическому результату теста.
- Имеет средства запуска тестов для автоматического выполнения написанных тестов.
- Использование JUnit позволяет разработчикам быстрее писать код за счёт автоматизации тестирования, что повышает качество кода.
- Тесты в JUnit выполняются автоматически, обеспечивая мгновенную обратную связь о работоспособности кода.
Аннотации JUnit
- Аннотации JUnit – это синтаксические метаданные, добавляемые в исходный код Java для улучшения структуры и читаемости.
- Самым большим отличием между JUnit 3 и JUnit4 является введение Аннотации JUnit.
Часто используемые Аннотации JUnit
@Test : Указывает JUnit, какой метод “public void” может быть запущен в качестве тестового случая.
@Before : Выполнение какого-либо оператора перед каждым тестовым случаем.
@After : Выполнение какого-либо оператора после каждого тестового случая.
@Ignores : Используется для игнорирования некоторых утверждений во время выполнения теста.
@BeforeClass : Используется для выполнения оператора перед всеми тестовыми случаями.
@AfterClass : Используется для выполнения оператора после всех тестовых случаев.
@Test (timeout = 500) : Используется для установления времени выполнения теста.
@Test (expected=illegalArgumentException.class) : Используется для добавления исключения, которое может быть выброшено тестом.
Параметризованные тесты
Параметризованные тесты используются для того, чтобы запускать один и тот же тест снова и снова, используя различные значения.
Пример представлен ниже:
Вывод :
JUnit тестирование на JAVA
В пределах этой статьи рассмотрим еще один популярный фреймворк Mockito, который может быть хорошим дополнением к JUnit.
Mockito
Тестирование с использованием mock-объектов
- В тестировании используются mock-объекты, которые имитируют реальные объекты.
- Mock-объекты дают заранее определённый выходной результат для каждого конкретного входного значения.
- Mockito – наиболее популярный фреймворк, используемый для создания mock-объектов.
Что такое Mockito?
- Mockito – это фреймворк на основе Java, используемый для модульного тестирования приложений.
- Он помогает в разработке тестируемых приложений.
- В Mockito можно использовать Java Reflection API для создания mock-объектов.
- Фреймворк упрощает тестирование путем имитации параметров и их использованием в коде.
Когда использовать Mockito?
- Когда необходимо протестировать компонент, но он зависит от другого компонента, находящегося в разработке.
- Если реальный компонент работает медленно, то для тестирования используются mock-объекты.
- Если есть какие-либо проблемы с инфраструктурой, которые делают тестирование невозможным.
Кроме mock-объектов в юнит-тестировании используются заглушки (stubs).
Что такое заглушки?
- Заглушки – это объекты, содержащие заранее определённые данные, которых используют для возврата готовых ответов во время выполнения тестов.
- Их можно рассматривать как упрощённые имитации реальных объектов, которые реализуют только минимальное количество методов, необходимых для прохождения теста.
- Они всегда возвращают одни и те же предопределённые результаты, независимо от параметров вызова.
- Заглушки используют для упрощения тестирования, чтобы избежать сложностей с созданием и использованием реальных объектов.
Перевод статьи «Everything about JUNIT».
Пингбэк: Лучшие вопросы и ответы на собеседовании по TestNG