【发布时间】:2016-02-09 16:34:48
【问题描述】:
我正在尝试验证我的响应的某些属性,如 rest assured tutorial 中所示。
问题在于,在测试数组内的属性时,我可以验证它们是否出现,如示例中所示,但不能验证它们是否与元素的其他属性匹配。
为了澄清,假设我收到了教程的回复(添加了“奖品”)
{
"lotto":{
"lottoId":5,
"winning-numbers":[2,45,34,23,7,5,3],
"winners":[{
"winnerId":23,
"prize":5000,
"numbers":[2,45,34,23,3,5]
},{
"winnerId":54,
"prize":100000,
"numbers":[52,3,12,11,18,22]
}]
}
}
我可以验证 winnerIds 为 23 和 54
expect().
body("lotto.lottoId", equalTo(5)).
body("lotto.winners.winnderId", hasItems(23, 54)).
when().
get("/lotto");
我可以验证奖品是 500 和 100000,但我无法验证获胜者 ID=23 的奖品=500 和获胜者Id=54 的奖品=100000。响应将显示获胜者Id=23,奖励=100000,测试将通过。
我不能使用contains(),因为数组中的元素可以以任意顺序出现,所以我需要使用containsInAnyOrder()。
【问题讨论】:
标签: java testing hamcrest rest-assured