Webflux Reactive API的Spring Cloud合约

时间:2018-04-17 19:09:41

标签: spring-webflux spring-cloud-contract

我正在尝试将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测试吗?

1 个答案:

答案 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的角度来看,存根的启动方式没有变化。