Задать вопрос
@Robofish

Как правильно покрыть тестами REST API сервис на Java?

Добрый день!

Имеется REST-сервис на Java, построенный с использованием фреймворка Jersey и разворачиваемый в контейнере на Tomcat. Часть методов работает "локально" (обращается к БД, пишет/получает данные, возвращает результат), а часть в процессе исполнения обращается к сторонним сервисам по их REST API, обмениваясь с ними json'ами. Причем часть сторонних сервисов - собственные, развернутые на том же Tomcat'е, а часть - внешние сервисы. Все методы REST-сервиса возвращают объекты класса Response.

Задача: покрыть методы сервиса тестами с целью убедится что при нормальном сценарии возвращается ожидаемый результат.

К сожалению, не понимаю ряд моментов:
- какие библиотеки использовать? JUnit? REST Assured? Mockito? Иные варианты?
- если методы обращаются к другим сервисам (как собственным, так и внешним): нужно ли в процессе тестирования действительно к ним обращаться или следует каким-то образом мокировать ответы этих сервисов?

Прочитал ряд статей и, к сожалению, в разных источниках противоречивая информация и неясно, как лучше подобраться к вопросу. Подскажите, пожалуйста, как лучше организовать тестирование в данном случае? Спасибо!
  • Вопрос задан
  • 245 просмотров
Подписаться 2 Простой 3 комментария
Решения вопроса 1
xez
@xez Куратор тега Java
TL Junior Roo
Варианты такие:
1. Мокать методы связанные с интеграцией
2. Использовать mockServer для подмены внешних сервисов
3. Использовать testcontainers для поднятия всего нужного окружения

Выбирать вам придется самостоятельно, руководствуйтесь здравым смыслом.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы