Quantcast
Channel: Active questions tagged rest - Stack Overflow
Viewing all articles
Browse latest Browse all 3655

How to mock Spring WebFlux WebClient?

$
0
0

We wrote a small Spring Boot REST application, which performs a REST request on another REST endpoint.

@RequestMapping("/api/v1")@SpringBootApplication@RestController@Slf4jpublic class Application{    @Autowired    private WebClient webClient;    @RequestMapping(value = "/zyx", method = POST)    @ResponseBody    XyzApiResponse zyx(@RequestBody XyzApiRequest request, @RequestHeader HttpHeaders headers)    {        webClient.post()            .uri("/api/v1/someapi")            .accept(MediaType.APPLICATION_JSON)            .contentType(MediaType.APPLICATION_JSON)            .body(BodyInserters.fromObject(request.getData()))            .exchange()            .subscribeOn(Schedulers.elastic())            .flatMap(response ->                    response.bodyToMono(XyzServiceResponse.class).map(r ->                    {                        if (r != null)                        {                            r.setStatus(response.statusCode().value());                        }                        if (!response.statusCode().is2xxSuccessful())                        {                            throw new ProcessResponseException("Bad status response code "+ response.statusCode() +"!");                        }                        return r;                    }))            .subscribe(body ->            {                // Do various things            }, throwable ->            {                // This section handles request errors            });        return XyzApiResponse.OK;    }}

We are new to Spring and are having trouble writing a Unit Test for this small code snippet.

Is there an elegant (reactive) way to mock the webClient itself or to start a mock server that the webClient can use as an endpoint?


Viewing all articles
Browse latest Browse all 3655

Trending Articles