#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()