空手道 API: JSON 显示解析错误而不是返回错误的 HTTP 代码
Karate API: JSON parsing error shown instead of wrong HTTP code returned
给定以下步骤
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)
我希望看到测试失败,因为收到错误的状态代码 200 而不是预期的 404。我想知道在空手道中抛出这个异常是否正确?
谢谢。
对于误读您的问题,我深表歉意。
空手道在处理格式错误的 JSON 响应时确实存在错误。
我们已经开了一个issue,你应该很快就能得到补丁版本:https://github.com/intuit/karate/issues/259
给定以下步骤
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)
我希望看到测试失败,因为收到错误的状态代码 200 而不是预期的 404。我想知道在空手道中抛出这个异常是否正确?
谢谢。
对于误读您的问题,我深表歉意。
空手道在处理格式错误的 JSON 响应时确实存在错误。
我们已经开了一个issue,你应该很快就能得到补丁版本:https://github.com/intuit/karate/issues/259