使用 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 响应的片段
server.enqueue(mockResponse); //server is instance of MockWebServer
Optional<Response> optionalResponse = authClientService.verifyToken().block(); //verifyToken returns authResponseMono
我认为这种行为的原因是由于 MockWebServer 在内部创建模拟的方式。我在这里想念什么?