【发布时间】:2018-11-19 12:15:12
【问题描述】:
使用 WebClient 进行 HTTP 调用,从 Mono 输出中我想做一些逻辑,为此我使用 flatMap 方法。
Mono<Response> authResponseMono = webClient.post().syncBody(requestBody)
.retrieve()
.bodyToMono(Response.class);
return authResponseMono.flatMap(authResponse -> {
//code removed for brevity
});
使用 OkHttp MockWebServer 库来模拟响应并对功能进行单元测试。 flatMap 方法在使用 MockWebServer 时没有被调用,但是,在实际调用中一切正常。
下面是用来模拟HTTP响应的sn-p
server.enqueue(mockResponse); //server is instance of MockWebServer
Optional<Response> optionalResponse = authClientService.verifyToken().block(); //verifyToken returns authResponseMono
我认为这种行为的原因是 MockWebServer 在内部创建模拟的方式。我在这里错过了什么?
【问题讨论】:
标签: java spring spring-webflux reactor mockwebserver