如何在json中找到响应对象的数量

时间:2015-06-23 00:22:36

标签: json rest-assured

我有一个JSON响应来验证。我正在编写一个测试secario,我想断言响应是否包含对象的数量。 JSON响应:

{
  "Result": {
    "resultCode": "1000",
  },
  "ResultClient": {
    "responseCode": null,
    "statusCode": null
  },
  "creditCard": {
    "number": null
  }
}

我想声明响应有3个对象。怎么做?响应obj dosn没有size()count()所以我无法理解解决方案的路径。我正在保证我的测试。

TestResponse testResponse = given()
                .contentType("application/json; charset=UTF-8")
                .body(cTestRequest)
                .when()
                .post(uri)
                .as(TestResponse.class);

现在如何断言json包含3个obj和objs中的参数?

1 个答案:

答案 0 :(得分:6)

您可以这样做:

when().
       get("/x").
then().
       body("keySet().size()", is(3));

原因是JSON对象被视为Groovy Map,因此您可以在其上调用函数。 keySet()会将所有密钥作为Set返回,size()会返回此Set的大小。