我正在尝试将Spring Cloud Contract应用于使用Spring Webflux构建的Reactive API。基本上可以通过以下方式从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 COntract Samples添加了一个WebFlux示例。

只需照常定义合同,在插件设置中为EXPLICIT参数传递testMode模式就足够了。代替RestASsuredMockMvc,您必须使用标准的RestAssured静态URI字段来设置使用WebFlux的应用程序的URI。您需要设置整个Spring Context并绑定到端口,仅此而已。

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

09-12 18:38