休息确保无法验证JSON数组响应

时间:2019-09-30 13:34:26

标签: java json rest-assured hamcrest rest-assured-jsonpath

我正在尝试验证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

感谢任何帮助或建议, 谢谢!

1 个答案:

答案 0 :(得分:1)

您需要指定集合的​​json路径。 "groupedResultColumns""graph"内部,因此您到达身体的路径将为graph.groupedResultColumns

您的代码将如下所示:

{
    SerenityRest.then()
      .body(containsString("groupedResultColumns"))
      .assertThat().body("graph.groupedResultColumns", (hasItems("Task_TimeSpent")));
}