如果我遇到类似情况
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"
}
然后我得到了类似的错误
example.feature:19-JavaScript评估失败:feature'} ,: 1:9缺少引号 特征'} ^ in在第1行的第9列
如果我的API响应中不包含单词“ any”,并且我更改了match语句,那么它工作正常。看来我需要以某种方式转义“ any”一词。
我可以知道如何摆脱“任何”一词吗?
不确定这是否是空手道中的错误。
试图致电
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)处第5列的第1行 com.intuit.karate.ScriptBindings.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)在 com.intuit.karate.Match。(Match.java:53)
答案 0 :(得分:2)
是的,这是空手道中的错误,我们已经打开了一个问题:https://github.com/intuit/karate/issues/678
@BabuSekaran建议的解决方法将起作用:
* def response = { foo: 'a any b' }
* def temp = { foo: 'a any b' }
* match response contains temp