Инструменты для интеграционных и unit-тестов в Java | OTUS
🔥 Начинаем BLACK FRIDAY!
Максимальная скидка -25% на всё. Успейте начать обучение по самой выгодной цене.
Выбрать курс

Курсы

Программирование
iOS Developer. Basic
-25%
Python Developer. Professional
-25%
Разработчик на Spring Framework
-25%
Golang Developer. Professional
-25%
Python Developer. Basic
-25%
iOS Developer. Professional
-25%
Highload Architect
-25%
JavaScript Developer. Basic
-25%
Kotlin Backend Developer
-25%
JavaScript Developer. Professional
-25%
Android Developer. Basic
-25%
Unity Game Developer. Basic
-25%
Разработчик C#
-25%
Программист С Web-разработчик на Python Алгоритмы и структуры данных Framework Laravel PostgreSQL Reverse-Engineering. Professional CI/CD Vue.js разработчик VOIP инженер Программист 1С Flutter Mobile Developer Супер - интенсив по Kubernetes Symfony Framework Advanced Fullstack JavaScript developer Супер-интенсив "Azure для разработчиков"
Инфраструктура
Мониторинг и логирование: Zabbix, Prometheus, ELK
-25%
DevOps практики и инструменты
-25%
Архитектор сетей
-25%
Инфраструктурная платформа на основе Kubernetes
-25%
Супер-интенсив «ELK»
-16%
Супер-интенсив «IaC Ansible»
-16%
Супер-интенсив "SQL для анализа данных"
-16%
Базы данных Сетевой инженер AWS для разработчиков Cloud Solution Architecture Разработчик голосовых ассистентов и чат-ботов Внедрение и работа в DevSecOps Администратор Linux. Виртуализация и кластеризация Нереляционные базы данных Супер-практикум по использованию и настройке GIT IoT-разработчик Супер-интенсив «СУБД в высоконагруженных системах»
Специализации Курсы в разработке Подготовительные курсы
+7 499 938-92-02

Инструменты для интеграционных и unit-тестов в Java

otus_Posts_26may_VK_1000x700_3-20219-07c3cb.jpg

Тесты — важная часть разработки ПО. В этой статье мы расскажем о некоторых библиотеках и фреймворках, используемых для написания интеграционных и unit-тестов.

1. Запуск тестов:

1) JUnit — фреймворк, имеющий множество расширений. Он популярен и хорошо поддерживается, поэтому в случае возникновения сложностей вы без труда найдёте решение; 2) NestedRunner — расширение для JUnit, позволяющее запускать тестовые методы из вложенных классов. Плюсы: — есть возможность замены длинных имён методов на иерархию классов с учётом BDD-подхода; — вы можете избавиться от дублирующего кода посредством перемещения его в установочные методы в необходимых вложенных классах; — вы можете объявить константы во вложенных классах, а потом связать их с тестами, которым эти константы необходимы; 3) junit-davaprovider — это расширение для JUnit позволяет писать параметризованные тесты с применением TestNG в качестве провайдера данных. И это существенный плюс, если сравнивать со стандартным способом написания параметризованных тестов, который, мягко говоря, не очень.

2. Макеты, заглушки, подмены:

1) Mockito — популярный фреймворк, поддерживающий макетирование для unit-тестов. Из плюсов — простой API, множество полезных возможностей и превосходная техническая документация; 2) Greenmail — сервер электронной почты, поддерживающий POP3, SMTP и IMAP с поддержкой SSL-соединения. Главный плюс — простота применения; 3) MockFtpServer — данная библиотека предоставляет 2 разные реализации FTP-сервера (так называемые «обманка» и «заглушка»), которые вы сможете использовать при тестировании разных сценариев. И если надо потестить код, взаимодействующий с FTP-сервером, MockFtpServer — это ваш выбор.

3. Assertions:

1) Hamcrest предоставит вам инструменты для написания assertions (утверждений) для интеграционных и unit-тестов. Его неплохо использовать совместно со Spring MVC Test Framework; 2) AssertJ. Этот инструмент предоставляет гибкий API для написания assertions с полезными сообщениями об ошибках. Он улучшает читаемость тестового кода, позволяя превращать тесты в исполняемые спецификации, поддерживающие нужный предметно-ориентированный язык.

4. Тестирование кода доступа к данным:

1) H2 — быстрая база данных, полезная при написания интеграционных тестов, запускаемых на локальной машине разработчика; 2) DbUnit — расширение для JUnit. Вы можете использовать его для инициализации БД в известное состояние непосредственно перед выполнением каждого интеграционного теста, а также для заполнения БД необходимыми данными. Несмотря на недостатки DbUnit, этот инструмент весьма полезен и позволяет разделить тестовый код и тестовые данные.

5. Тестирование Spring-приложений:

1) Spring Test — не что иное, как швейцарский нож для написания автоматизированных тестов. Spring Test предоставляет собой 1-классную поддержку написания интеграционных и unit-тестов для приложений, где используется Spring; 2) Spring Test DbUnit — инструмент предназначен для интеграции DbUnit во фреймфорк String Test. Незаменимая вещь, если надо написать тесты доступа к данным для приложения, использующего реляционную БД и Spring.

Источник: «12 Tools That I Use for Writing Unit and Integration Tests».

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
🎁 Максимальная скидка!
Черная пятница уже в OTUS! Скидка -25% на всё!