例如,假设我有以下json响应:
{
"0": {
"field1" : 5
"field2" : 10
}
"1": {
"field1" : 1
"field2" : 10
}
}
有没有办法验证field1的值是5还是1?我被困在.body声明中:
.body("[0].field1", Matchers.hasItems(1));
我完全不可能完全理解hasItems应该做什么,因为我尝试了很多[0],[*]和字段名称的组合,但没有一个能够工作。我也希望有一篇关于hamcrest和json的用法文章,它不仅涵盖了最基本的案例。有谁知道我要求的是否可能?
感谢阅读。
答案 0 :(得分:0)
首先,你的" json文件"无效。它应该看起来像这样:
{
"0": {
"field1" : 5,
"field2" : 10
},
"1": {
"field1" : 1,
"field2" : 10
}
}
由于您定位的路径只匹配单个元素,因此您应该使用equalTo
(或is
)Hamcrest匹配器:
.body("0.field1", Matchers.equalTo(5));
请注意,REST Assured不会使用" Stefan Goessner" JsonPath语法。它使用Groovy GPath表达式语言。