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

如何在空手道中使用读取文件对包含其他对象的对象进行JSON模式验证

穆正青
2023-03-14

我想用包含其他对象的对象验证json响应的json模式。GET/persons/id请求的json响应示例,该请求将发送对象person:

{
"id":"789",
"name":"Jane",
"children":[
{
"id":"111",
"name":"Bill",
"hobbies":[
"chess",
"knitting"
],
"schools":[
{
"id":"111A",
"name":"LA public"
},
{
"id":"111B",
"name":"NY public"
}
]
}
]
}

GET/人物请求将发送一个包含人物对象的数组。

验证功能示例(Validator.feature):

Feature: json schema validation
   Scenario: 
   * def schoolSchema =
     """
      {
        id: '#string',
        name: '#string'
      }
    """

    * def childrenSchema =
     """
      {
        id: '#string',
        name: '#string',
        hobbies: '#regex \d (playing|singing|knitting|chess)',
        schools: '##[] schoolSchema'
      }
    """

    * def personSchema =
    """
      {
        id: '#string',
        name: '#string',
        children: '#[] childrenSchema'
      }
    """

我不想在这个特性的末尾添加*匹配每个响应==personSchema*匹配响应==personSchema

我想从我的主要功能调用模式验证功能,如下所示:

Given url url
And path 'persons'
When method get
Then status 200
And match each response == call read('Validator.schema')
Given url url
And path 'persons', id
When method get
Then status 200
And match response == call read('Validator.schema')

验证两个请求的响应。我需要将这个模式放在一个特性或json文件中,以便只有一个地方可以修改json模式。我怎么能做到?

共有1个答案

尉迟京
2023-03-14

你提到你不想使用

你试过这样吗,

* call read('Validator.feature')
And match response == personSchema
 类似资料:
  • 早上好 我刚刚开始使用JSON,所以我知道这是一个非常基本的问题,有人能指出我在尝试验证下面的事件和问题ID方面的错误吗? id字段似乎已成功验证,但我的文件在尝试验证时失败。

  • 任务: 有3个endpoint: 第一个返回请求的随机数据到另外两个endpoint。 另外两个endpoint使用不同的DBs操作,但或多或少使用相似的数据。 我需要验证来自一个endpoint的响应是否匹配来自另一个endpoint的响应,两个endpoint发送相同的数据,但顺序不同。 例如。: endpoint“A”: endpoint“B”: endpointA_response.ite

  • 我有两个json对象,请不要是字符串,我想将它们组合成一个json对象,如下所示。 两个对象: 预期结果: 有没有一种优雅的方法可以做到这一点?我的意思是,不提取每支笔和每本书的值,然后使用以下方法将它们重新插入包 我正在使用org。科德豪斯。抛弃json。JSONObject,如果需要该信息。

  • 我正在使用空手道JavaAPI处理Json对象。我将创建以下json: 当我尝试,我得到以下错误: json路径语法经过交叉检查是正确的,我可能缺少的任何其他点? 编辑:我正在使用v1。空手道核心1.0

  • 问题内容: 在我的程序中,创建了一个固定长度[7]个对象的数组,每个对象都是一个包含3 ,an 和an的类。这些值是从.txt文件中读取的,并基于的值添加到数组的特定索引中。.txt文件中的条目较少,然后数组中存在索引,因此该数组最终看起来像这样: 后来在节目中,我需要的基础上平均的排序的数组中。我有一个工作方法返回这个,但是当我尝试使用数组进行排序和我开始得到这些错误的一个长长的清单: 我的方法

  • 我从accuweather获得了以下带有json的代码 我尝试通过Jackson将此对象解析为POJO 我有json中指定的所有模型,如、数组、,由组成(在json中命名为最小值和最大值)等,它们都有私有字段和公共构造函数、getter和setter。但是我没有一些字段,因为我想省略它们(Day、night、EpochDate、Source)。 当我运行程序时,我得到了错误 com.fasterx