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

Инструменты для интеграционных и 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 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто