如果响应包含单词“ any”,则匹配的响应包含失败

时间:2019-02-12 20:19:13

标签: 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-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)

1 个答案:

答案 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