Karate 空手道API:显示JSON解析错误,而不是返回错误的HTTP代码

Karate 空手道API:显示JSON解析错误,而不是返回错误的HTTP代码,karate,Karate,给出以下步骤列表 Given path 'verify' And header x-api-key = apiKey And header tenant-id = tenantId And request a_json_object_with_invalid_user_id_to_verify When method put Then status 404 当端点返回HTTP 200(这是一个我需要修复的错误)但带有无效的json响应时,例如 { "score" : } 将引发此异常

给出以下步骤列表

Given path 'verify'
And header x-api-key = apiKey
And header tenant-id = tenantId
And request a_json_object_with_invalid_user_id_to_verify
When method put
Then status 404
当端点返回HTTP 200(这是一个我需要修复的错误)但带有无效的json响应时,例如

{
  "score" : 
}
将引发此异常

com.jayway.jsonpath.InvalidJsonException: net.minidev.json.parser.ParseException: Unexpected character (}) at position 15.
    at com.jayway.jsonpath.spi.json.JsonSmartJsonProvider.parse(JsonSmartJsonProvider.java:64)
    at com.jayway.jsonpath.internal.JsonContext.parse(JsonContext.java:82)
    at com.jayway.jsonpath.JsonPath.parse(JsonPath.java:596)
    at com.intuit.karate.JsonUtils.toJsonDoc(JsonUtils.java:84)
    at com.intuit.karate.StepDefs.method(StepDefs.java:344)
我希望看到测试失败,因为收到预期404的错误状态代码200。我想知道在空手道中抛出这个异常是否正确


谢谢。

我很抱歉误读了你的问题

在处理格式错误的JSON响应时,空手道中确实存在一个bug


我们已经打开了一个问题,您应该能够很快获得补丁版本:

但在本例中,我发送了一个有效的json对象(作为请求),而回复json的格式无效。我正在发送的对象包含一个无效的用户id,该id假定会使后端API返回404(表示找不到用户)。我尝试将404更改为200,但仍然收到json解析错误。看起来,如果响应无效,空手道将报告解析错误并停止在那里,而不是实际执行响应step@david很抱歉我之前的回复,谢谢你在空手道中发现这个错误!请查看我的编辑。@david您能试用版本0.6.2.1,看看它是否能解决问题吗?