WebTestClient проверяет JSONPath на соответствие другому JSONPath

#java #junit #spring-webflux

#java #junit #spring-webflux

Вопрос:

У меня есть этот ответ «content», из которого мне нужно указать некоторые значения.

 WebTestClient.BodyContentSpec content = response.expectStatus().isOk()
                .expectBody()
                .jsonPath("$.path1").isEqualTo(value1);
  

Если я хочу указать некоторые пути JSON с предопределенными значениями, все хорошо.

Но сложная часть возникает, когда я хочу проверить, равен ли путь JSON другому пути JSON.

 JsonPathAssertions jsonPath2 = bodyContentSpec.jsonPath("$.path2");
JsonPathAssertions jsonPath3 = bodyContentSpec.jsonPath("$.path3");
  

Итак, мой вопрос в том, как я могу утверждать содержимое jsonPath2 против jsonPath3 использования org.hamcrest.Matchers.greaterThanOrEqualTo ?

Ответ №1:

Я думаю, вы могли бы использовать value(Consumer) метод:

для простых операций:

 jsonPath2.value(v->jsonPath3.isEqualTo(v));
  

для использования специальных сопоставителей:

 jsonPath2.value(v->jsonPath3.value(Matchers.greaterThanOrEqualTo(v)));
  

Комментарии:

1. вместо isEqualTo мне нужно использовать org.hamcrest. Matchers.Greater thanorequalto не могли бы вы опубликовать пример, используя это