0
这里是我现在如何测试一个集合的元素:有没有办法在没有特定顺序的情况下测试集合中的元素?
.then()
.spec(userSpec("users[0]", first))
.spec(userSpec("users[1]", second))
的这里的问题是,测试依赖于要素的特定顺序。
我正在寻找一种方法来测试集合中的元素,而不被绑定到它们的顺序并找不到任何。我错过了什么吗?
这里是我现在如何测试一个集合的元素:有没有办法在没有特定顺序的情况下测试集合中的元素?
.then()
.spec(userSpec("users[0]", first))
.spec(userSpec("users[1]", second))
的这里的问题是,测试依赖于要素的特定顺序。
我正在寻找一种方法来测试集合中的元素,而不被绑定到它们的顺序并找不到任何。我错过了什么吗?
您可能需要查看GPath(Groovy表达式语言)。使用GPath可以识别特定的用户。例如,让我们说,从服务器返回的JSON文档看起来是这样的:
{
"users":[
{
"id":0,
"name":"Jane"
},
{
"id":1,
"name":"John"
}
]
}
然后可以使用GPATH的验证,ID为0的用户名“简”,并与ID等于用户1被称为“约翰”:
then().
body("users.find { it.id == 0 }.name", equalTo("Jane")).
body("users.find { it.id == 1 }.name", equalTo("John")). ..
这可以变得更可重用通过使用根路径:
then().
rootPath("users.find { it.id == %d }.name").
body(withArgs(0), equalTo("Jane")).
body(withArgs(1), equalTo("John")). ..
感谢一大堆! –