我在我的Java微服务中使用了Springboot2、Spring5和reactive-webflux。我有一个想要使用webtestclient测试的服务类:
@Service("authenticationProvider")
public class CommonAuthenticationProvider implements AuthenticationProvider {
@Override
public AccessToken getUserAccessToken(Tuple2<String, WebClient> serviceConnectionDetails, MultiValueMap<String, String> queryParams) {
return serviceConnectionDetails._2
.post()
.uri(builder -> builder
.path(serviceConnectionDetails._1)
.queryParams(queryParams)
.build())
.accept(MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML)
.retrieve()
.bodyToMono(AccessToken.class)
.block();
}
}
这里的serviceConnectionDetails._2是一个webclient实例。我想写一个JUnit测试来模拟这个the客户端,并测试getUserAccessToken()方法。请协助,因为我已经尝试了许多东西,如mockmvc,mockRestServiceServer,但都没有工作。后来我才知道,我不能使用mockRestServiceServer,因为它用来模拟RestTemplate,而不是WebClient。我可以使用webtestclient测试控制器类方法,但不能在服务类上这样做。
https://stackoverflow.com/questions/51415741
复制相似问题