Webflux 响应式 API 的 Spring Cloud 合同

Kri*_*tof 5 spring-cloud-contract spring-webflux

我正在尝试将 Spring Cloud Contract 应用于使用 Spring Webflux 构建的 Reactive API。基本上能够以以下样式发送 Flux 并从 API 接收响应 Flux:

@RequestMapping("/endlessecho")
public Flux<String> endlessEcho(Flux<String> input) {
    return input;
}
Run Code Online (Sandbox Code Playgroud)

但是,我无法在网上或文档中找到有关是否可以使用 Spring Cloud Contract 执行此操作的信息。

甚至可以为此编写合同吗?它能够提供 wiremock 并生成适当的 JUnit 测试吗?

Mar*_*zak 3

通过此提交(https://github.com/spring-cloud-samples/spring-cloud-contract-samples/commit/f7030148a9337d4c7184f7c8e27c271d9b89681b),我已将 WebFlux 示例添加到 Spring Cloud COntract 示例中。

像往常一样定义合约就足够了,在插件设置中传递参数EXPLICIT的模式。testMode您不必RestASsuredMockMvc使用标准RestAssured静态URI字段来设置正在使用的应用程序的 URI WebFlux。您需要设置整个 Spring 上下文并绑定到端口,仅此而已。

在名为的项目中,consumer有一个使用项目中的存根的测试producer-webflux。从存根运行者的角度来看,存根的启动方式没有变化。