У меня есть веб-служба REST, которую необходимо протестировать. Я использую Mockito для имитации классов DAO и RestAssured для тестирования методов REST через URI. Есть ли способ протестировать службу REST, не запуская ее отдельно с Tomcat? Или как запустить приложение на Tomcat с издевательскими классами перед тестовыми примерами?
Тестирование RestAssured без запуска Tomcat
Ответы (1)
Существует руководство, в котором показано, как использовать maven для запуска встроенного экземпляра tomcat и запускать тесты для вашей службы с помощью RestAssured:
Вы запускаете tomcat в одной оболочке и запускаете тесты в другой.
Тем не менее, я настоятельно рекомендую использовать трикотажную тестовую среду, которая прозрачно запускает встроенный контейнер. В этом случае вы бы вообще не использовали RestAssured, а использовали бы тестовый клиент Джерси. Ваши тесты будут выполняться быстрее и с меньшими усилиями. Это хорошо задокументировано здесь: https://jersey.github.io/documentation/latest/test-framework.html. В учебнике также демонстрируется этот подход, хотя мне не кажется, что клиент построен правильно.
В прошлом я также тестировал ресурсы REST, напрямую вызывая методы реализующего класса. Хотя это не проверяет правильное сопоставление параметров/тела http-запроса с параметрами метода java, часто этого было достаточно (особенно когда я также кодирую код на стороне клиента).