WebTestClient根据另一个JSONPath检查jsonPath

时间:2019-04-16 07:25:29

标签: java junit spring-webflux

我有这个“内容”响应,我需要从中声明一些值。

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

如果我想使用预定义的值声明一些json路径,那么一切都很好。

但是当我想检查一个json路径是否等于另一个json路径时,棘手的部分就来了。

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

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

所以我的问题是如何在org.hamcrest.Matchers.greaterThanOrEqualTo中针对jsonPath3声明jsonPath2的内容?

1 个答案:

答案 0 :(得分:1)

我认为您可以使用value(Consumer)方法:

简单操作:

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

使用特殊匹配器:

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