休息条件保证

时间:2015-11-12 21:24:12

标签: rest-assured

我正在寻找一种在Rest Assured中实施条件验证的方法。假设我得到了一个响应主体

{
"id": 1,
"accounts": [
  {
    "accountType": "Type1",
    "properties": {}
  },
  {
    "accountType": "Type2",
    "properties": {}
  }
]

}

我检查过"帐户"是否存在第一。我们可以通过

来做到这一点
given().when().get("url").then().body().("any { it.key == 'accounts' }"), is(true))

如果响应正文中存在帐户,那么我需要验证帐户数组的大小。我可以在这里使用任何条件,如

if(accountsExists) {Check for Array.size();} else {do something}

1 个答案:

答案 0 :(得分:4)

可以这样做,但我强烈建议不要(因为它很复杂,并且正在使用未记录的功能)。例如,假设您希望返回accounts的大小(如果它存在),如果它不存在,则您希望返回id的值:

get("url").then().body("accounts?.size() ?: restAssuredJsonRootObject.id"), anyOf(is(2), is(1)));

说明:

帐户?.size()表示它应该返回帐户列表的大小(如果它存在)(即不为空)

?: elvis operator是否会返回帐户的大小或我们在右侧写的内容。

restAssuredJsonRootObject.id 表示我们要从文档的根目录返回id。文档的根称为restAssuredJsonRootObject(未记录,可能会更改)。

我要做的是创建两个不同的测试。一个你知道accounts存在的地方和一个不存在的地方。