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