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

Karate-嵌套JSON对象模式验证导致KarateException

孔鹤龄
2023-03-14
Feature: Test Karate schema validation

Scenario: Test nested json objects
 
 * def response = read('tasks.json')
 * def schema = { ab: "##[] string", c: "##[] string" }
 * match response ==
 """
{
      id: '#string',
      name: '#string',
      obj1: '#(schema)' ,
      obj2: '##(schema)' ,
      obj3: '#(schema)' ,
      obj4: '#null' 
      
}
"""

下面是使用的json文件(tasks.json)

{
    "id": "ad:p2:53456:4634:yu",
    "name": "name",
    "obj1": {
        "ab": [
            "test"
        ],
        "c": null
    },
    "obj2": null,
    "obj3": {
        "ab": [
            "tester"
        ],
        "c": [
            "t1", "t2"
        ]
    },
    "obj4": null
}

错误:com.intuit.karate.exception.KarateException:javascript评估失败:字符串,引用错误:第1行中未定义“字符串”

我尝试了多种方法,如:obj1:“#(^schema)”,obj1:“#对象schema”

但无法解决问题。

共有1个答案

魏朗
2023-03-14

应该是##[] #string,阅读docs:https://github.com/intuit/karate#schema-validation

 类似资料:
  • 我使用的是OpenApi规范,这是生成类的代码示例: 我想禁止发送以下请求: 如果我使用了它看起来像: 有什么方法可以使用文件做同样的事情吗?

  • 我试图通过将请求参数直接绑定到用户实体来简化我的代码,而不是一个字段一个字段地复制值,但是我似乎不能通过这种方式得到验证。 控制器: 验证器: 模型(注意嵌套对象用@Valid标注): 问题是只有密码和重新密码字段被正确验证,用户类中的验证注释被忽略,任何密码匹配的请求都通过,但它应该会出现错误。空密码或不同的密码会按预期出现错误。

  • 问题内容: 使用flask式的微框架,我很难构建一个RequestParser可以验证嵌套资源的。假设期望的JSON资源格式为: 中的每个项目都对应一个对象: …然后使用如下形式创建一个: …但是你将如何验证其中MyObject每个字典的嵌套?或者,这是错误的方法吗? 与此对应的API MyObject本质上将每个对象视为对象文字,并且可能有一个或多个传递给服务;因此,在这种情况下,拼合资源格式将

  • 我正在对嵌套的Json使用Avro模式使用Apache Nifi验证记录。我对JSON中的字段有特殊问题。 架构: Json数据: 无效消息: 此FlowFile中的记录无效,原因如下:;以下1个字段的值类型与架构不匹配:[/test_attributes/nested_field] 我不明白这个信息。我想象Json是有效的,因此处理器不应该使处理器失效。我错过了什么? 编辑:*删除了示例JSON

  • 我有一个带有嵌套字段的JSON: 我正在使用JSONPATH从嵌套中获取。 我已经将我的JSON文本粘贴到了http://jsonpath.com/这个网站上;并且在使用了这一行之后: 我得到了这个: 使用此行后: 我得到了这个: 我尝试返回(输出)的内容如下: 但是我找不到合适的语法来将这两个组合在一行中,并用一个JSONPATH查询返回它们。

  • 由于是一个对象,并且它有另一个对象,只能有字符串或数字字段,而不能有对象,如何扩展元化学以强制执行此操作。感谢任何帮助