Spring Cloud Contract для Webflux Reactive API

Я пытаюсь применить Spring Cloud Contract к Reactive API, созданному с использованием Spring Webflux. В основном можно отправлять Flux и получать ответ Flux от API в стиле:

@RequestMapping("/endlessecho")
public Flux<String> endlessEcho(Flux<String> input) {
    return input;
}

Однако я не могу найти в Интернете или в документации информацию о том, могу ли я сделать это с помощью Spring Cloud Contract.

Можно ли даже написать контракт для этого? Сможет ли он подать проволоку и генерировать соответствующие тесты JUnit?

1 ответ

Решение

С помощью этого коммита ( https://github.com/spring-cloud-samples/spring-cloud-contract-samples/commit/f7030148a9337d4c7184f7c8e27c271d9b89681b) я добавил пример WebFlux в примеры Spring Cloud COntract.

Достаточно определить контракт как обычно, передать EXPLICIT режим для testMode параметр в настройке плагина. Вместо RestASsuredMockMvc Вы должны использовать стандарт RestAssured статический URI поле для настройки URI приложения, которое использует WebFlux, Вам нужно настроить весь Spring Context и привязать к порту, и это почти все.

В проекте под названием consumer есть тест, который использует заглушки из producer-webflux проект. С точки зрения бегуна заглушки, нет никаких изменений в том, как заглушки запускаются.

Другие вопросы по тегам