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是的,因为很难在评论中讨论。据我所知,我的答案本身应该是有效的,所以我很失落,彼得,我的代码中有一个输入错误,所以你的解决方案实际上仍然有效。再次感谢你的帮助。