WebTestClient 根据另一个 jsonPath 检查 jsonPath

WebTestClient check jsonPath against another jsonPath

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

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 断言 jsonPath2 的内容反对 jsonPath3

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

简单操作:

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

使用特殊匹配器:

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