我尝试为服务编写测试函数,该服务使用来自另一个服务的间隔Flux,创建类似于Flux.interval(Duration.ofSeconds(1)).map( ... )
。
如果看到Support of MockRestServiceServer for WebClient,这正是我需要的。但是,目前建议使用OkHttp MockWebServer。我现在的问题是:如何模拟提供间隔Flux的服务器响应?
MockResponse的setBody()
函数接受String和Buffer。可能缓冲是可行的方法。但是,我不知道如何将Flux
转换成说InputStream
左右,可以读入缓冲区。
为什么不直接使用Mockito来模拟这种反应呢?基本上,使用Mockito来模拟服务调用。
例如嘲笑一个基于id给用户的服务
//mocked response
Mono<User> monoUser = Mono.just(new User());
Mockito.when(UserService.getUserBasedOnID(id)).thenReturn(monoUser);