空手道模式验证,使用匹配包含断言时,它是否适用于嵌套数组?

时间:2019-01-18 17:04:17

标签: karate

我试图通过仅检查某些元素来对json对象使用匹配项。 Json对象包含一个嵌套数组,这似乎是测试失败的根本原因。似乎对key ::嵌套数组中的值使用'match contains'断言似乎无法按预期工作,并引发错误。

我尝试在第一级键上使用“匹配包含”,效果很好,但是在尝试匹配嵌套数组中的键时,出现以下错误消息:原因:实际值比键多1个预期

* def json = { id: 1, priority: 1, compRound: { id: 1, comp_id: 89 } }
* match json contains
"""
{
  id: '#number',
  priority: '#number',
  compRound: {
    id: '#number'
  }
}
"""

当我使用match contains断言时,我希望测试能够通过,但看起来空手道希望嵌套数组中的所有key:values都存在。

1 个答案:

答案 0 :(得分:1)

请仔细阅读文档的这一部分:https://github.com/intuit/karate#contains-short-cuts

element(by.id('login').click()).then(function(){
    const EC = protractor.ExpectedConditions;
    // Waits max. 5 seconds for the input field to become clickable
    browser.wait(EC.elementToBeClickable(element(by.id('username')), 5000);
    element(by.id('username')).sendKeys('admin');
    ...
});