我可以有一个回应:
{ id: '123', name: 'foo' }`
如果用户没有狗
或者
{ id: '123', name: 'foo', dog: {id: '123', color: 'brown'} }`
如果用户有狗。
在我的特写中,我有:
* def schema = { id: '#string', name: '#string', dog: {id: '#string', color: '#string'} }`
* match response == schema
prb是指如果我有一个没有狗的用户响应,我有以下错误:
path: $[0].dog, actual: null, expected: {id=#string, label=#string}, reason: actual value is null
如何检查模式中的属性“dog”?谢谢
不可能在一个步骤中完成此操作,另请参阅架构验证文档:
* def dogSchema = { id: '#string', color: '#string' }
* def schema = { id: '#string', name: '#string', dog: '##object' }
* def response1 = { id: '123', name: 'foo' }
* match response1 == schema
* match response1 contains { dog: '##(dogSchema)' }
* def response2 = { id: '123', name: 'foo', dog: { id: '123', color: 'brown' } }
* match response2 == schema
* match response1 contains { dog: '##(dogSchema)' }
编辑:这很尴尬,我意识到这个技巧没有很好的记录:
* def dogSchema = { id: '#string', color: '#string' }
* def schema = { id: '#string', name: '#string', dog: "#('##(dogSchema)')" }
* def response1 = { id: '123', name: 'foo' }
* match response1 == schema
* def response2 = { id: '123', name: 'foo', dog: { id: '123', color: 'brown' } }
* match response2 == schema
Edit2:这将在下一版本中得到改进:https://github.com/intuit/karate/issues/248
以下是我的示例功能文件: 有没有一种方法可以使用空手道表达式检查状态是主动还是不主动? 注意:它肯定可以通过编写托管JS函数来实现。
样本响应 示例要素文件 有没有办法用空手道表情来检查状态是活动的还是不活动的? 注意:可以通过编写自定义JS函数来实现。
我想使用“faker”库在JSON文件中生成假数据,如下所示。 空手道配置。js,我做了以下工作: 在sample.json: 但我在“空手道配置”中遇到了类似“找不到”require“关键字的错误。js' 请帮忙。
使用空手道框架,我如何确保persons数组下的personId不应作为重复值出现 如果您看到下面的响应,id: 1记录有重复的个人ID,因此在这种情况下,我的测试应该失败。此外,人数组本质上是动态的,可能有一些记录也包含4个人以上。 因此,一个通用的方法应该是有帮助的。请帮忙。
我试图验证一个json响应与空手道json模式验证。我已经在许多方面多次使用它,在这个简单的例子中,我无法理解哪里出了问题。以下是我得到的回应: 下面是模式: 当我试图验证它:*匹配每个响应==clientSchema 错误是:路径$[0]['房间']中缺少属性,这让我发疯,我找不到。
英文版的情景工作完美。但是在俄文版本中,它看起来像是空手道FeatureParser不知道本地化的标记而失败了。以下是错误日志: 特征文件的英文版本: 特写文件的俄文版本: 我该怎么做才能修好它?