【发布时间】:2020-10-28 20:19:29
【问题描述】:
我正在尝试使用 karate.match() 来检查场景中请求的架构。
这是我在后台声明的示例架构:
* def mySchema = {place: { id: '#string',},id: '#string',number: '#number'}
我在这里询问如何匹配完整架构:Schema validation in the Scenario
有人建议这是重复的,并且此匹配参考可以解决问题:Is it possible to use karate 'match' inside conditional statement?
我仍然遇到问题,我认为建议的参考不适用于我的案例,因为它似乎只谈论在测试中使用匹配,但在场景中使用时语法似乎有所不同.
例如,我决定尝试只匹配架构的一部分,以确保我使用了正确的语法。我发送了这个请求:
{"place": {"id": "someID"},"id": "someOtherID","number": 10}
我决定尝试匹配 number 值。
这是我的场景:
Scenario: pathMatches('my/api/path') && !karate.match("request contains { number: '#number'}").pass
我也试过
!karate.match("each number =='#number'}").pass
bit 都没有按预期工作。我认为在我的请求中 number 键值是一个数字。在这种情况下,我希望 ! 会导致跳过此场景,但事实并非如此,这让我相信我的架构匹配语法不正确。
感谢您的帮助。
【问题讨论】: