我正在尝试验证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
任何帮助或建议,我们感激不尽,
谢谢!
最佳答案
您需要指定集合的json路径。 "groupedResultColumns"
位于"graph"
内,因此您到达身体的路径将为graph.groupedResultColumns
。
您的代码将如下所示:
{
SerenityRest.then()
.body(containsString("groupedResultColumns"))
.assertThat().body("graph.groupedResultColumns", (hasItems("Task_TimeSpent")));
}
关于java - 休息确保无法验证JSON数组响应,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58169031/