使用 hamcrest 测试 json 结果,顺序不可知
Test json result with hamcrest, order agnostic
我有一个 API returns 以下类型的 body 结果,我想在 java17.
上用 Hamcrest 测试它
[
{
"name": "name1",
"version": "x.x.x"
},
{
"name": "name2",
"version": "y.y.y"
}
]
我想测试一下,对于 name1,我总是得到 version = "x.x.x",对于 name2,我总是得到 version = "y.y.y"。
以下代码有效,但我想要更多 order-agnostic 测试,因为它考虑了我的元素的顺序:
given()...when()...then()
.body("name[0]", is("foo"))
.body("version[0]", is("0.0.0"))
.body("name[1]", is("bar"))
.body("version[1]", is("1.1.1"));
);
这可行:
.body("find {it.name == 'name1'}.version", is("x.x.x"))
.body("find {it.name == 'name2'}.version", is("y.y.y"));
我有一个 API returns 以下类型的 body 结果,我想在 java17.
上用 Hamcrest 测试它[
{
"name": "name1",
"version": "x.x.x"
},
{
"name": "name2",
"version": "y.y.y"
}
]
我想测试一下,对于 name1,我总是得到 version = "x.x.x",对于 name2,我总是得到 version = "y.y.y"。
以下代码有效,但我想要更多 order-agnostic 测试,因为它考虑了我的元素的顺序:
given()...when()...then()
.body("name[0]", is("foo"))
.body("version[0]", is("0.0.0"))
.body("name[1]", is("bar"))
.body("version[1]", is("1.1.1"));
);
这可行:
.body("find {it.name == 'name1'}.version", is("x.x.x"))
.body("find {it.name == 'name2'}.version", is("y.y.y"));