JUnit + Mockito или отдых гарантирован - PullRequest
0 голосов
/ 29 ноября 2018

Пожалуйста, помогите мне выбрать правильный подход для тестирования REST API (Java).

Я использовал JUnit и Mockito в своих предыдущих проектах, и я знаю, что это требует много времени / усилий для получения достаточного количества кода.Но недавно я узнал о Rest-Assured, и это кажется многообещающим.Пожалуйста, предложите, основываясь на вашем опыте.

1 Ответ

0 голосов
/ 01 декабря 2018

JUnit в этом случае - бегун .Этот вопрос действительно о разнице между модульным тестированием и интеграционным тестированием, оба из которых могут быть реализованы с использованием JUnit в качестве среды выполнения.

Существует множество комбинаций структур, которые вы можете использовать.Некоторые распространенные:

  • JUnit + mockito для модульного тестирования - когда ваши bean-компоненты контроллера REST API подключены к легким / смоделированным зависимостям, и вы выполняете API через JAVA
  • JUnit + Cucumber+ RESTAssured для интеграционного тестирования - где вы пишете тестовое устройство, которое должно выполняться на работающем сервере, чтобы использовать его API

Между этими крайностями тоже есть точки.Вы должны решить, где ваши тесты сидеть на тестовой пирамиде.Для тестов с высокой перестановкой вы захотите написать модульные тесты, чтобы можно было легко добиваться перестановок и получать скорость выполнения.Если вы действительно пытаетесь проверить, доступны ли ваши API, уже выполнив их модульное тестирование, то вам нужно написать небольшое количество интеграционных тестов.

Между точками спектра имеетсякомбинация mockito + нативная тестовая библиотека вашего сервиса.Например, весной есть SpringTest, а в Джерси есть фреймворк JerseyTest / Grizzly.В этих случаях используется ненастоящий http-сервер для размещения вашей службы REST, и вы тестируете ее, имитируя вызовы REST к ней через клиента платформы.Этот модуль тестирует уровень маршалинга HTTP, а также первый уровень кода контроллера REST.

...