Инструменты для интеграционных и unit-тестов в Java | OTUS
⚡ Подписка на курсы OTUS!
Интенсивная прокачка навыков для IT-специалистов!
Подробнее

Курсы

Программирование
Алгоритмы и структуры данных Team Lead Архитектура и шаблоны проектирования Разработчик IoT C# Developer. Professional PostgreSQL Разработчик на Spring Framework
-5%
Flutter Mobile Developer NoSQL iOS Developer. Basic
-10%
C++ Developer. Basic C++ Developer. Professional Android Developer. Professional Microservice Architecture Unity Game Developer. Professional Базы данных Node.js Developer React.js Developer Специализация Java-разработчик
-25%
Web-разработчик на Python Framework Laravel Cloud Solution Architecture Vue.js разработчик Интенсив «Оптимизация в Java» Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes Супер-интенсив "Tarantool" PHP Developer. Basic
Инфраструктура
Мониторинг и логирование: Zabbix, Prometheus, ELK Administrator Linux. Professional Дизайн сетей ЦОД Разработчик IoT PostgreSQL Экспресс-курс "Версионирование и командная работа с помощью Git"
-30%
Microservice Architecture Highload Architect Специализация Administrator Linux
-25%
Network engineer Cloud Solution Architecture Внедрение и работа в DevSecOps Супер-практикум по работе с протоколом BGP Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes Супер-интенсив «СУБД в высоконагруженных системах» Супер-интенсив "Tarantool" Network engineer. Basic
Корпоративные курсы
Безопасность веб-приложений IT-Recruiter Дизайн сетей ЦОД Компьютерное зрение Разработчик IoT Вебинар CERTIPORT Machine Learning. Professional
-6%
NoSQL Пентест. Практика тестирования на проникновение Java QA Engineer. Базовый курс Руководитель поддержки пользователей в IT
-8%
SRE практики и инструменты Cloud Solution Architecture Внедрение и работа в DevSecOps Супер-практикум по работе с протоколом BGP Infrastructure as a code Супер-практикум по использованию и настройке GIT Промышленный ML на больших данных Экспресс-курс «CI/CD или Непрерывная поставка с Docker и Kubernetes» BPMN: Моделирование бизнес-процессов Основы Windows Server
Специализации Курсы в разработке Подготовительные курсы Подписка
+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 комментариев
Для комментирования необходимо авторизоваться