Karate 空手道:验证猫返回中小猫列表中包含的文本是否所有键值都不匹配错误
我有以下代码Karate 空手道:验证猫返回中小猫列表中包含的文本是否所有键值都不匹配错误,karate,Karate,我有以下代码 * def cat = """ { kittens: [ { id: 23, name: 'Bob' }, { id: 42, name: 'Wild' } ] } """ * def id = {id: 23} 我正在尝试按照解决所有键值不匹配的错误 这是我的 * match cat == {kittens: '#(^id)'} * m
* def cat =
"""
{
kittens: [
{
id: 23,
name: 'Bob'
},
{
id: 42,
name: 'Wild'
}
]
}
"""
* def id = {id: 23}
我正在尝试按照解决所有键值不匹配的错误
这是我的
* match cat == {kittens: '#(^id)'}
* match cat contains {kittens: '#(^id)'}
但是我得到了以下错误
com.intuit.karate.exception.karate exception:-路径:$,实际:{kittens=[{“id”:23,“name”:“Bob”},{“id”:42,“name”:“Wild”}},预期:{kittens=#(^id)},原因:所有键值都不匹配
现在,我为每只小猫添加了另一个颜色字段:
* def cat =
"""
{
kittens: [
{
id: 23,
colour: 'black',
name: 'Bob'
},
{
id: 42,
colour: 'grey',
name: 'Wild'
}
]
}
"""
* def id = {id: 23, name: 'Bob'}
使用提供的答案cat.kittens包含“#”(^id)
仍然有效
另一种方法是
* def id = {id: 23, colour: '#number', name: 'Bob'}
选项1更好,因为您不需要指定颜色:“#编号”。给您:
* match cat.kittens contains '#(^id)'
如需解释,请阅读:谢谢,彼得,这很有效。我为每只小猫添加了另一个字段颜色,位于id和name字段之间。现在我的id是
{id:'23',name:'Bob'}
,但它不工作。我必须设置为{id:'23',颜色:'#编号',名称:'Bob'}
才能让它工作。如果kitten中有很多字段,但我只想验证2-3个字段,该怎么办。有没有一种方法可以绕过这个问题而不指定颜色:“#number”
?@sc30请问一个新问题我只能每隔90分钟发布一个新问题,稍后会发布。@sc30是的,因为很难在评论中讨论。据我所知,我的答案本身应该是有效的,所以我很失落,彼得,我的代码中有一个输入错误,所以你的解决方案实际上仍然有效。再次感谢你的帮助。