Tестирование rest api

Добрый день! Пытаюсь протестировать rest api, которое написал на Cuba.

  1. Сделал контейнер, как описано тут - https://doc.cuba-platform.com/manual-latest-ru/integration_tests_mw.html (фактически он был готов, я перестроил на тестовую БД)
  2. Запустил готовый тест SampleIntegrationTest - он отработал.
  3. Сделал на его основе свой, для rest api - https://pastebin.com/pmia0uNs
  4. Запускаю тест, не работает - В соединении отказано (Connection refused)
  5. Запускаю куба проект как обычно, делаю тест с curl - работает.
    Наверное я что-то не указал, чтобы у меня стартовал сервер, перед запуском теста (в консоле не вижу записи о старте сервера перед тестом). Прошу помочь, что сделал не так?

Я имел ввиду, что наверное есть какие анотации, которые запускаю тестовый сервер перед тем, как пустить тесты. Вроде того как в spring:

@RunWith(SpringRunner.class)
@SpringBootTest

применяются.

Добрый день!
Для функционального тестирования REST API вам необходимо самому запускать сервер с приложением. Готовых механизмов для этого нет. OmniconcubaTestContainer для подобных тестов вам не нужен, т.к. это не стандартный кубинский интеграционный тест. Ваш тест по факту будет клиентом, который обращается к REST endpoints запущенного сервера приложений. При разработке можете руками запускать приложение, а потом вызвать тест из IDE. Если будете настраивать запуск функциональных тестов на CI-сервере, то там можете сделать отдельную Gradle таску, которая сначала соберёт приложение, задеплоит и запустит томкат, а потом прогонит ваши тесты. Подход к созданию таски для CI можно посмотреть, например, тут - таска ]funcTest] делает всю подготовку (создаёт базу, деплоит томкат и т.п., а потом выполняет классы тестов, имена которых заканчиваются на FT (functional test).

2 симпатии

Спасибо за ответ. Так сейчас и делаю.