当前位置: 首页 > 知识库问答 >
问题:

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

岳安福
2023-03-14

给出以下步骤列表

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

当endpoint返回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。我想知道在空手道中抛出这个异常是否正确?

谢谢

共有1个答案

姜兴业
2023-03-14

我为误读你的问题道歉。

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

我们已经打开了一个问题,您应该能够很快获得补丁版本:https://github.com/intuit/karate/issues/259

 类似资料:
  • 我有一个spring boot webapp,我在其中定义了REST API。我将Spring Security性用于REST API安全性。 我已经用RESTController注释了我的控制器类。我最近更新了spring boot,mvc和安全性到最新版本。 我现在看到,在我的负面情况下,在更新之前,它返回json错误响应,但现在在更新之后,它返回html错误响应。 在更新之前,它给出了以下错

  • 问题内容: 我正在使用Codeigniter,而不是错误消息,我只是得到一个空白页。有什么方法可以显示PHP错误消息吗?当我没有反馈时很难调试。 我的环境是带有Apache的Ubuntu。 问题答案: 由于到目前为止,没有一种解决方案对您有用,请尝试以下一种方法: 这明确地告诉PHP 显示 错误。某些环境可以默认禁用此功能。 这是我的环境设置的样子:

  • 问题内容: 我正在使用jquery调用ajax wcf方法,该方法将对象列表作为JSON字符串返回。在fiddler2中(在TextView中)检查时,JSON字符串如下所示: 当我在提琴手的JSON视图中检查结果时,它显示以下JSON: 因此,提琴手可以成功解析它,但是在客户端上,jQuery ajax错误回调函数显示以下错误: wcf方法的定义如下: 最后,调用的jQuery是: 提前致谢!

  • 在我的MySQL数据库中,我有一个表"table1",在列"name"上设置了唯一约束-我想防止重复的名称。 如果表中已经有名字'John',则此代码: 应该抛出insertUnonnequeException()(我自己的异常)。相反,它抛出InsertException()。 查询的执行返回false,执行进入if()循环。另外$db- 我不知道为什么当发生唯一密钥约束冲突时,mysqli不返

  • 问题内容: 我正在尝试解析包含一个城市的大型json文件(以下是文件中的前两个城市): 我想获取其“名称”值与字符串匹配的城市的ID: 但是,出现以下错误: 然后冒号后,它吐出了整个文件。 问题答案: 改成 因为它在顶层包含一个数组

  • 问题内容: 尝试使用方法从文件中读取RSA私钥时 我例外 在fac.generatePrivate(privKeySpec)调用中。 这个错误是什么意思? 谢谢 德米特里 问题答案: 这意味着您的密钥不是PKCS#8格式。最简单的方法是使用命令一次转换密钥。或者,您可以使用Bouncycastle轻量级API的类。