当前位置: 首页 > 知识库问答 >
问题:

如何在空手道DSL中为模式断言提供动态键

傅峻
2023-03-14
 * def value = 3

    Then match object ==
    {
         result : {
                      '#(value)'
                               {
                                  firstName : '#string',
                                  lastName : '#string'
                               }
                    }
    }

我得到的异常显示为“path$.result.(#value)actual:null应为{firstName:'#string'lastName:'#string'}”

共有1个答案

岳晟
2023-03-14

您的JSON有严重的问题。你真的想用动态键吗?那是不可能的.

下面是一个工作示例,它可能帮助您找出您做错了什么:

* def actual = { result: { value: 3, foo: { firstName: 'John', lastName: 'Smith' } } }
* def value = 3
Then match actual ==
"""
{
  result : {
    value: '#(value)',
    foo: {
      firstName : '#string',
      lastName : '#string'
    }
  }
}
"""

(编辑:)看起来要求的确实是一个动态键,下面是一个更改后的示例:

* def actual = { result: { 3: { firstName: 'John', lastName: 'Smith' } } }
* def fun =
"""
function(key) {
  var temp = { result: {} };
  temp.result[key] = { firstName: '#string', lastName: '#string' };
  return temp;
}
"""
Then match actual == fun(3)
 类似资料:
  • 我有下面的xml响应,我需要使用空手道断言“result”值 我能够获取“值”对象的数据,但不能获取“结果”元素的数据。

  • 我正在使用来自动处理肥皂请求,我想使用XML Schema(XSD)验证XML格式的响应。 我需要模式。java调用它的代码和函数。功能文件。我尝试使用RESTAPI和空手道演示来验证json模式,并找到了正确的结果,但soap(xml、xsd)没有得到。我正在尝试这个模式。用于XSD验证的java。

  • 我希望对从文件加载的JSON中的字段执行自定义断言。 我知道我们有模糊匹配,但我想执行一些更自定义的操作,例如,有一个函数将日期解析为LocalDateTime: } NB这是专门用于从文件加载的JSON,而不是在特性文件本身中指定的JSON上(例如,这里的isValidTime()是:https://github.com/intuit/karate/blob/master/karate-juni

  • 我是新技术的,请原谅我的错误。任何人的任何帮助都是值得的。我需要生成格式为12345AB6-A1DF-4F40-B0FE-26DF6908F62C的随机guid。谢谢

  • 在下面的json有效负载中,我如何通过空手道断言D节点不在响应中。

  • 我需要在空手道测试的功能中使用动态值。 我遇到了一些类似这样的问题和答案:如何从excel电子表格中读取输入数据并在空手道框架中传递JSON负载? 但不管我怎么努力,我都做不到。我相信我应该分享我试图使用的代码部分,这样讨论就可以开始了。 我有一个创建新用户的SOAP请求,如下所示: 正如你所看到的,我有一些将从外部给出的变量,它们是:帐户号、子标识、子类型和移动。 现在,我有了一个特性文件,我在