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
项目的存根。从存根运行器的角度来看,存根的启动方式没有变化。
我正在尝试将 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
项目的存根。从存根运行器的角度来看,存根的启动方式没有变化。