WebTestClient, как я могу протестировать метод DELETE с телом - PullRequest
0 голосов
/ 07 мая 2020

Как я могу использовать 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"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...