Karate 如果响应包含单词';任何';然后匹配响应包含失败
假设我有这样一个场景Karate 如果响应包含单词';任何';然后匹配响应包含失败,karate,Karate,假设我有这样一个场景 Scenario: Call a Get API and validate the response Given path 'myteam' When method get Then status 201 And print response And match response contains { teamFeature: 'pick any feature'} 我的API响应是 { "id": "6c0377cd-
Scenario: Call a Get API and validate the response
Given path 'myteam'
When method get
Then status 201
And print response
And match response contains { teamFeature: 'pick any feature'}
我的API响应是
{
"id": "6c0377cd-96c9-4651-bcc8-0c9a7d962bc3",
"teamFeature": "pick any feature"
}
然后我得到了这样的错误
示例.feature:19-javascript评估失败:feature'},:1:9缺少右引号
特征'}
^在第1行第9列中
如果我的API响应不包含单词“any”,并且我更改了match语句,那么它工作正常。看来我需要逃避“任何”这个词
我可以知道怎样才能避开“任何”这个词吗
不确定这是否是空手道的一个缺陷
试图打电话
com.intuit.karate.Match match = new com.intuit.karate.Match("pick any feature");
System.out.println(match.contains("pick any feature"));
并收到以下错误
线程“main”java.lang.RuntimeException中的异常:javascript
评估失败:选择任何特征,预期为1:5;但是发现
任意选择任意特征
^在com.intuit.karate.ScriptBindings.eval(ScriptBindings.java:152)的第1行第5列中
updateBindingsAndEval(ScriptBindings.java:142)
在
com.intuit.karate.ScriptBindings.evalInNashorn(ScriptBindings.java:127)
位于com.intuit.karate.Script.evalJsExpression(Script.java:423)
com.intuit.karate.Script.evalKarateExpression(Script.java:337)位于
com.intuit.karate.Script.evalKarateExpression(Script.java:203)位于
com.intuit.karate.Match.(Match.java:67)在
Match.com.intuit.karate.Match.(Match.java:53)
是的,这是空手道的一个漏洞,我们已经打开了一个问题: @BabuSekaran建议的解决方案将起作用:
* def response = { foo: 'a any b' }
* def temp = { foo: 'a any b' }
* match response contains temp
对于这种情况,匹配步骤似乎有问题,临时解决方法是
*def expected={teamFeature:'pick any feature'}
,然后,匹配响应包含expected