'match each' 数组中的一个元素
'match each' one element in the array
我的问题是关于 'match each' 的选择性断言。
下面是一个示例 json body:
* def data =
"""
{
"companies": [
{
"companyDetails": {
"name": "companyName",
"location": {
"address": "companyAddress",
"street": "companyStreet"
}
}
},
{
"companyDetails": {
"name": "companyName",
"location": {
"address": "companyAddress",
"street": "companyStreet"
}
}
}
]
}
"""
我们如何断言响应中的每个 'companyDetails' 对象是否包含某个元素,例如只有名字?
* match each data.companies contains { companyDetails: { name: '#notnull' } }
当我使用上面的步骤时,这个 returns 下面的错误:
$[0] | actual does not contain expected | all key-values did not match, expected has un-matched keys
那么,有什么方法可以让我们在这个对象中只断言一个字段吗?例如,断言每个 companyDetails 对象是否包含名称,但忽略其他元素,如位置?谢谢
这会起作用:
* match each data.companies == { companyDetails: { name: '#notnull', location: '#notnull' } }
这也适用:
* match data.companies contains deep { companyDetails: { name: '#notnull' } }
有时在比赛前转换 JSON 会更好:
* match each data..companyDetails contains { name: '#notnull' }
我的问题是关于 'match each' 的选择性断言。 下面是一个示例 json body:
* def data =
"""
{
"companies": [
{
"companyDetails": {
"name": "companyName",
"location": {
"address": "companyAddress",
"street": "companyStreet"
}
}
},
{
"companyDetails": {
"name": "companyName",
"location": {
"address": "companyAddress",
"street": "companyStreet"
}
}
}
]
}
"""
我们如何断言响应中的每个 'companyDetails' 对象是否包含某个元素,例如只有名字?
* match each data.companies contains { companyDetails: { name: '#notnull' } }
当我使用上面的步骤时,这个 returns 下面的错误:
$[0] | actual does not contain expected | all key-values did not match, expected has un-matched keys
那么,有什么方法可以让我们在这个对象中只断言一个字段吗?例如,断言每个 companyDetails 对象是否包含名称,但忽略其他元素,如位置?谢谢
这会起作用:
* match each data.companies == { companyDetails: { name: '#notnull', location: '#notnull' } }
这也适用:
* match data.companies contains deep { companyDetails: { name: '#notnull' } }
有时在比赛前转换 JSON 会更好:
* match each data..companyDetails contains { name: '#notnull' }