我可以在空手道中使用具有多种可能类型的模糊匹配器吗?

问题描述 投票:1回答:1

我正在测试的API可能会返回许多字段的字符串或数字。我已经能够使用自我验证表达式来检查这种行为:{ a: '#? typeof _ === "number" || typeof _ === "string"' }

有没有(或应该有)使用空手道模糊匹配标记的方法?像{ a: '#string OR #number'}

karate
1个回答
1
投票

不,我认为这是IMO一个设计糟糕的API,我不想膨胀语法来解决这些问题。

请注意,您可以按照以下方式使其更加优雅,因此您可以编写此函数一次,将其定义为“全局”并重复使用您的内容:

* 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(_)' }
© www.soinside.com 2019 - 2024. All rights reserved.