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



@Robofish

Добрый день!

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

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

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

Прочитал ряд статей и, к сожалению, в разных источниках противоречивая информация и неясно, как лучше подобраться к вопросу. Подскажите, пожалуйста, как лучше организовать тестирование в данном случае? Спасибо!


Решения вопроса 1



@xez Куратор тега Java

Варианты такие:
1. Мокать методы связанные с интеграцией
2. Использовать mockServer для подмены внешних сервисов
3. Использовать testcontainers для поднятия всего нужного окружения

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


Ответы на вопрос 0

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *