【问题标题】:Rest-Assured unable to validate JSON array responseRest-Assured 无法验证 JSON 数组响应
【发布时间】:2019-09-30 13:34:26
【问题描述】:

我正在尝试验证 JSON 数组是否包含某个值。在 Java 中使用带有 hamcrest 匹配器导入的 Rest-Assured。这是我正在验证的 JSON;

{
    "graph": {
        "groupedResultColumns": [
            "Task_Status",
            "Task_TimeSpent"
        ]
    }
}

在阅读了有关 rest 和 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

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

【问题讨论】:

  • 我不知道 SerenityRest 但是...您确定选择了 groupedResultColumns 吗?也许你应该先选择图表?

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


【解决方案1】:

您需要指定集合的​​ json 路径。 "groupedResultColumns" 位于 "graph" 内部,因此您通往身体的路径将是 graph.groupedResultColumns

你的代码应该是这样的:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多