我正在尝试将Spring Cloud Contract应用于使用Spring Webflux构建的Reactive API。基本上能够发送Flux并从API接收响应Flux:
@RequestMapping("/endlessecho")
public Flux<String> endlessEcho(Flux<String> input) {
return input;
}
但是我无法在线或在文档中找到关于我是否可以使用Spring Cloud Contract执行此操作的信息。
甚至可以为此写一份合同吗?它能够提供线索并生成适当的JUnit测试吗?
答案 0 :(得分:1)
通过此提交(https://github.com/spring-cloud-samples/spring-cloud-contract-samples/commit/f7030148a9337d4c7184f7c8e27c271d9b89681b),我已将一个WebFlux示例添加到Spring Cloud COntract示例中。
足够像往常一样定义合约,在插件设置中为EXPLICIT
参数传递testMode
模式。您必须使用标准RestASsuredMockMvc
静态RestAssured
字段来设置使用URI
的应用的URI,而不是WebFlux
。你需要设置整个Spring Context并绑定到一个端口,这就是它。
在名为consumer
的项目中,有一个测试使用producer-webflux
项目中的存根。从Stub Runner的角度来看,存根的启动方式没有变化。