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

10-13 01:28