Как я могу использовать WebTestClient
для тестирования службы DELETE
с телом
WebTestClient .method(HttpMethod.DELETE)
.uri(DELETE)
.header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE)
.accept(MediaType.APPLICATION_JSON)
.body(BodyInserters.fromObject(deleteRequest))
.exchange()
.expectStatus().isOk()
.expectBody()
.jsonPath("$.response").exists()
.jsonPath("$.response").isArray()
.jsonPath("$.response").isNotEmpty()
.jsonPath("$.response.[0]").isEqualTo("123456")
.jsonPath("$.errors").exists()
.jsonPath("$.errors").isArray()
.jsonPath("$.errors").isEmpty()
этот фрагмент кода работает, он удалит entity
и вернет действительный ответ
{
"group_header" : {
"creation_date_time" : "2020-05-07T09:36:02.629Z",
"http_code" : 200
},
"response" : [ "123456" ],
"errors" : [ ]
}
Но это не удастся из-за ошибки
Caused by: java.lang.AssertionError: Status expected:<200 OK> but was:<400 BAD_REQUEST>
, если я удалил .expectStatus().isOk()
, то метод jsonPath
не сможет прочитать ответ
java.lang.AssertionError: No value at JSON path "$.response"