我可以在空手道中使用具有多种可能类型的模糊匹配器吗?
Can I use fuzzy matchers with multiple possible types in Karate?
我正在测试的 API 可能 return 一个字符串或一个数字用于许多字段。我已经能够使用自我验证表达式来检查此行为:{ a: '#? typeof _ === "number" || typeof _ === "string"' }
.
是否有(或应该有)一种方法来使用空手道的模糊匹配标记来做到这一点?喜欢 { a: '#string OR #number'}
?
不,我认为这是 IMO 设计糟糕的 API 并且我不想膨胀语法来解决这些问题。
请注意,您可以按如下方式使其更优雅,因此您可以编写此函数一次,定义它 "globally" 并根据您的需要重新使用:
* def isNumOrStr = function(x){ return typeof x === 'number' || typeof x === 'string' }
* def foo = { a: 1 }
* match foo == { a: '#? isNumOrStr(_)' }
* def bar = { a: 'z' }
* match bar == { a: '#? isNumOrStr(_)' }
我正在测试的 API 可能 return 一个字符串或一个数字用于许多字段。我已经能够使用自我验证表达式来检查此行为:{ a: '#? typeof _ === "number" || typeof _ === "string"' }
.
是否有(或应该有)一种方法来使用空手道的模糊匹配标记来做到这一点?喜欢 { a: '#string OR #number'}
?
不,我认为这是 IMO 设计糟糕的 API 并且我不想膨胀语法来解决这些问题。
请注意,您可以按如下方式使其更优雅,因此您可以编写此函数一次,定义它 "globally" 并根据您的需要重新使用:
* def isNumOrStr = function(x){ return typeof x === 'number' || typeof x === 'string' }
* def foo = { a: 1 }
* match foo == { a: '#? isNumOrStr(_)' }
* def bar = { a: 'z' }
* match bar == { a: '#? isNumOrStr(_)' }