WebTestClient с get() и RequestBody недоступен

#java #rest #integration-testing #spring-webclient #webtestclient

#java #остальное #интеграция-тестирование #spring-webclient #webtestclient

Вопрос:

У меня есть приложение, в котором один из API определен с помощью метода Get. Он также ожидает тело запроса, которое затем сопоставляется с POJO. Я пытаюсь протестировать этот контроллер с помощью webTestClient. Но я не вижу возможности отправить тело запроса с помощью метода get(). Не уверен, правильно ли я определяю свой webTestClient.

Мой контроллер выглядит так:

 @GetMapping
public Flux<ResponseBody> getAllResources(@RequestBody Resource resource) {
//related code here...
}
  

Мой метод тестирования:

 @Test
public void myTest() {

webClient.get()
.uri("uri_path")
.header("Content-Type", "application/json")
.accept("application/json")
.exchange()
.expectedStatus.is2xxxSuccessful();
}
  

Я подумал, что, поскольку в контроллере разрешено привязывать объект к POJO с помощью вызова get, должен быть какой-то способ протестировать его с помощью webTestClient.

Ответ №1:

Попробуйте использовать:

 webTestClient.method(HttpMethod.GET)
  

вместо:

 webTestClient.get()