Spring Webflux 反应式 API 的云合同

Spring Cloud Contract for Webflux Reactive APIs

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

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

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

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

通过这次提交 (https://github.com/spring-cloud-samples/spring-cloud-contract-samples/commit/f7030148a9337d4c7184f7c8e27c271d9b89681b),我向 Spring Cloud 合约示例添加了一个 WebFlux 示例。

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

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