我们可以在 Javascript 文件中使用空手道的匹配功能吗?
Can we use Karate's Match function inside a Javascript file?
我正在尝试在空手道中编写一个通用的 JS 函数,它将从数据库中提取结果并将其存储在 Json 对象中,并将其与外部 json 文件进行比较。外部文件还包含用于比较的模糊匹配,例如“#null”或“#notnull”。
我想在 JS 函数本身中比较这两个对象,而不是将对象传递给调用的空手道脚本。然而,当我尝试在 JS 函数中比较它时,模糊匹配字符串没有被评估。(当我 return 空手道的 Json 对象并使用空手道的 'match' 函数时它起作用)。
有什么方法可以在 JS 文件中调用 Karate 的 Match 函数吗?
这实际上是个好主意,我已经打开了一个功能请求:https://github.com/intuit/karate/issues/378
同时,如果您将匹配操作移动到一个单独的功能中,则如下所示:
Feature:
Scenario:
* def passed = false
* match actual == expected
* def passed = true
并这样称呼它:
var result = karate.call('match.feature', { actual: { foo: 'bar' }, expected: { foo: '#string' } })
if (!result.passed) {
// failed
}
可能有用!你明白了。不确定是否需要捕获上面 JS 第一行周围的异常,但你应该能够弄清楚。
我正在尝试在空手道中编写一个通用的 JS 函数,它将从数据库中提取结果并将其存储在 Json 对象中,并将其与外部 json 文件进行比较。外部文件还包含用于比较的模糊匹配,例如“#null”或“#notnull”。
我想在 JS 函数本身中比较这两个对象,而不是将对象传递给调用的空手道脚本。然而,当我尝试在 JS 函数中比较它时,模糊匹配字符串没有被评估。(当我 return 空手道的 Json 对象并使用空手道的 'match' 函数时它起作用)。
有什么方法可以在 JS 文件中调用 Karate 的 Match 函数吗?
这实际上是个好主意,我已经打开了一个功能请求:https://github.com/intuit/karate/issues/378
同时,如果您将匹配操作移动到一个单独的功能中,则如下所示:
Feature:
Scenario:
* def passed = false
* match actual == expected
* def passed = true
并这样称呼它:
var result = karate.call('match.feature', { actual: { foo: 'bar' }, expected: { foo: '#string' } })
if (!result.passed) {
// failed
}
可能有用!你明白了。不确定是否需要捕获上面 JS 第一行周围的异常,但你应该能够弄清楚。