用 hamcrest 处理数组,放心
Dealing arrays with hamcrest and rest assured
我不知道如何使用 hamcrest 创建代码来检查具有这些属性的数组中的数组。
(想象一下,因为它有多个不同数据的条目)
{
"mobilenum": "+6519829340",
"firstname": "Allen",
"lastname": "Edwards",
"location": "Singapore"
}
如果我使用这个:
.body("smsentries.mobilenum", contains(equalTo("+6519829340")));
它 returns 它确实存在,但我如何才能更多地检查它找到的对象是否也具有相同的名字、姓氏和位置?
我也认为这是错误的:
.body("smsentries.mobilenum", contains(equalTo("+6519829340")))
.and()
.body("smsentries.firstname", contains(equalTo("Allen"));
据我了解,如果数组包含的 mobilenum 等于提供的内容,并且数组包含名称 "Allen"
,它会搜索数组
我需要的是找到 mobilenum 等于“+6519829340”并且 firstname 等于 "Allen" 的数组。
你们知道怎么做吗?
What I needed to is to find the array having the mobilenum equal to
"+6519829340" and having the firstname equalto "Allen".
您可以使用"find"方法:
.body("smsentries.find { it.mobilenum == '+6519829340' }.firstname", equalTo("Allen")
.body("smsentries.find { it.mobilenum == '+6519829340' }.lastname", equalTo("Edwards").
如您所见,在这两种情况下,您实际上是在复制路径表达式,因此为了改进这一点,我们可以使用 root paths:
.root("smsentries.find { it.mobilenum == '+6519829340' }").
.body("firstname", equalTo("Allen")
.body("lastname", equalTo("Edwards").
您还可以参数化根路径:
.root("smsentries.find { it.mobilenum == '%s' }").
.body("firstname", withArgs("+6519829340"), equalTo("Allen")
.body("lastname", withArgs("+6519829340"), equalTo("Edwards").
.body("firstname", withArgs("+12345678"), equalTo("John")
.body("lastname", withArgs("+12345678"), equalTo("Doe").
我不知道如何使用 hamcrest 创建代码来检查具有这些属性的数组中的数组。
(想象一下,因为它有多个不同数据的条目)
{
"mobilenum": "+6519829340",
"firstname": "Allen",
"lastname": "Edwards",
"location": "Singapore"
}
如果我使用这个:
.body("smsentries.mobilenum", contains(equalTo("+6519829340")));
它 returns 它确实存在,但我如何才能更多地检查它找到的对象是否也具有相同的名字、姓氏和位置?
我也认为这是错误的:
.body("smsentries.mobilenum", contains(equalTo("+6519829340")))
.and()
.body("smsentries.firstname", contains(equalTo("Allen"));
据我了解,如果数组包含的 mobilenum 等于提供的内容,并且数组包含名称 "Allen"
,它会搜索数组我需要的是找到 mobilenum 等于“+6519829340”并且 firstname 等于 "Allen" 的数组。
你们知道怎么做吗?
What I needed to is to find the array having the mobilenum equal to "+6519829340" and having the firstname equalto "Allen".
您可以使用"find"方法:
.body("smsentries.find { it.mobilenum == '+6519829340' }.firstname", equalTo("Allen")
.body("smsentries.find { it.mobilenum == '+6519829340' }.lastname", equalTo("Edwards").
如您所见,在这两种情况下,您实际上是在复制路径表达式,因此为了改进这一点,我们可以使用 root paths:
.root("smsentries.find { it.mobilenum == '+6519829340' }").
.body("firstname", equalTo("Allen")
.body("lastname", equalTo("Edwards").
您还可以参数化根路径:
.root("smsentries.find { it.mobilenum == '%s' }").
.body("firstname", withArgs("+6519829340"), equalTo("Allen")
.body("lastname", withArgs("+6519829340"), equalTo("Edwards").
.body("firstname", withArgs("+12345678"), equalTo("John")
.body("lastname", withArgs("+12345678"), equalTo("Doe").