我正在尝试验证JSON数组包含某个值。在Java中将Rest-Assured与hamcrest匹配器一起使用。这是我正在验证的JSON;
{
"graph": {
"groupedResultColumns": [
"Task_Status",
"Task_TimeSpent"
]
}
}
在阅读了关于放心的和hamcrest匹配器的内容之后,这是我目前正在尝试的代码;
{
SerenityRest.then()
.body(containsString("groupedResultColumns"))
.assertThat().body("groupedResultColumns", (hasItems("Task_TimeSpent")));
}
这是我遇到的错误;
JSON path groupedResultColumns doesn't match.
Expected: (a collection containing "Task_TimeSpent")
Actual: null
感谢任何帮助或建议, 谢谢!
答案 0 :(得分:1)
您需要指定集合的json路径。 "groupedResultColumns"
在"graph"
内部,因此您到达身体的路径将为graph.groupedResultColumns
。
您的代码将如下所示:
{
SerenityRest.then()
.body(containsString("groupedResultColumns"))
.assertThat().body("graph.groupedResultColumns", (hasItems("Task_TimeSpent")));
}