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

wor*_*erd 2 json rest-assured

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

{
  "Result": {
    "resultCode": "1000",
  },
  "ResultClient": {
    "responseCode": null,
    "statusCode": null
  },
  "creditCard": {
    "number": null
  }
}
Run Code Online (Sandbox Code Playgroud)

我想声明响应有3个对象.怎么做?响应obj没有size()或者count()我不能理解解决方案的路径.我在放心地写我的测试.

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

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

Joh*_*han 6

你可以这样做:

when().
       get("/x").
then().
       body("keySet().size()", is(3));
Run Code Online (Sandbox Code Playgroud)

原因是JSON对象被视为Groovy,Map因此您可以在其上调用函数.keySet()将所有键作为a 返回Setsize()返回此大小Set.