如何检查Rest-assured中响应体(数组)的顺序?响应正文如下所示:
[ {"name": "a"}, {"name":"b"} ]
z4bn682m1#
RestAssured.get("pictures?sort=name") .then() .body("[0].name", response -> Matchers.lessThanOrEqualTo(response.path("[1].name")))
说明:主体方法获得元素[0].name的值(通过路径),然后使用ResponseAwareMatcher(λ)来匹配[0].name值和响应中的值[1].name(通过路径)。
[0].name
ResponseAwareMatcher
[1].name
xmd2e60i2#
我们可以使用Rest Assured中的jsonPath方法来检查响应正文的顺序。您可以检索数组中每个元素的“name”字段的值,然后将检索到的值的顺序与预期顺序进行比较。例如:
List<String> names = given(). when(). get("<your API endpoint here>"). then(). extract(). jsonPath().getList("$.name"); assertEquals(Arrays.asList("a", "b"), names);
此代码检索数组中每个元素的“name”字段值,并将其保存为字符串列表。然后,它使用assertEquals方法将检索到的值与预期值进行比较。如果响应正文中值的顺序与预期值匹配,则Assert将通过。
2条答案
按热度按时间z4bn682m1#
说明:主体方法获得元素
[0].name
的值(通过路径),然后使用ResponseAwareMatcher
(λ)来匹配[0].name
值和响应中的值[1].name
(通过路径)。xmd2e60i2#
我们可以使用Rest Assured中的jsonPath方法来检查响应正文的顺序。您可以检索数组中每个元素的“name”字段的值,然后将检索到的值的顺序与预期顺序进行比较。例如:
此代码检索数组中每个元素的“name”字段值,并将其保存为字符串列表。然后,它使用assertEquals方法将检索到的值与预期值进行比较。如果响应正文中值的顺序与预期值匹配,则Assert将通过。