使用 hamcrest 测试 json 结果,顺序无关
我有一个返回以下类型主体结果的 API,我想在 java17 上使用 Hamcrest 对其进行测试。
[
{
"name": "name1",
"version": "x.x.x"
},
{
"name": "name2",
"version": "y.y.y"
}
]
我想测试一下我是否总是为 name1 获取 version =“xxx”,为 name2 获取 version =“yyy”。
以下代码有效,但我想要一个与顺序无关的测试,因为它考虑了元素的顺序:
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"));
);
I have an API that returns the following kind of body result, and I want to test it with Hamcrest on java17.
[
{
"name": "name1",
"version": "x.x.x"
},
{
"name": "name2",
"version": "y.y.y"
}
]
I woud like to test that I always get version = "x.x.x" for name1, and version = "y.y.y" for name2.
The following code works, but I would like a more order-agnostic test, as it takes into account the order of my elements:
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"));
);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这会起作用:
This would work: