我正在寻找一种在“放心的人”中实施条件验证的方法。假设我得到一个响应主体
{
"id": 1,
"accounts": [
{
"accountType": "Type1",
"properties": {}
},
{
"accountType": "Type2",
"properties": {}
}
]
Run Code Online (Sandbox Code Playgroud)
}
我首先要检查“帐户”的存在。我们可以做到
given().when().get("url").then().body().("any { it.key == 'accounts' }"), is(true))
Run Code Online (Sandbox Code Playgroud)
然后,如果响应主体中存在帐户,则需要验证帐户数组的大小。有什么条件可以在这里使用吗
if(accountsExists) {Check for Array.size();} else {do something}
Run Code Online (Sandbox Code Playgroud)
您可以这样做,但我强烈建议您不要这样做(因为它很复杂并且正在使用未记录的功能)。例如,假设您要返回的大小(accounts如果存在),如果不存在,则要返回的值id:
get("url").then().body("accounts?.size() ?: restAssuredJsonRootObject.id"), anyOf(is(2), is(1)));
Run Code Online (Sandbox Code Playgroud)
说明:
account?.size()表示如果存在(即不为null),则应返回帐户列表的大小。
?:是elvis运算符,它将返回帐户的大小或我们在右侧写的内容。
restAssuredJsonRootObject.id意味着我们id要从文档的根目录返回。文档的根称为restAssuredJsonRootObject(未记录且可能会更改)。
我要做的是创建两个不同的测试。一种是您知道accounts存在的地方,另一种是不存在的地方。