Karate 路径中缺少属性,json架构空手道

Karate 路径中缺少属性,json架构空手道,karate,Karate,我试图用空手道json模式验证来验证json响应。我已经在很多方面使用过它很多次了,在这个简单的例子中,我无法理解哪里出了问题。以下是我得到的答复: * def response = """ [{ "id" : "1111", "surname" : "Debby", "name" : "Johns", "status" : "MARRIED", "rooms" : [{ "number" : "2", "state" : "clean", "owner"

我试图用空手道json模式验证来验证json响应。我已经在很多方面使用过它很多次了,在这个简单的例子中,我无法理解哪里出了问题。以下是我得到的答复:

 * def response =
 """
[{
 "id" : "1111",
 "surname" : "Debby",
 "name" : "Johns",
 "status" : "MARRIED",
 "rooms" : [{
    "number" : "2",
    "state" : "clean",
    "owner" : {
       "name" : "Mrs Johns",
       "address" : "New York",
       "birth_date" : 1555493518,
       "birth_place" : "Jersey",
       "phone_number" : "078******1"
     },
 "keys" : [{
     "id" : "aaa",
     "color" : "blue"
 }]
}],
"creation_date" : 1555493458,
"left" : false
}]
 """
下面是模式:

* def ownerSchema =
"""
  {
      name: '#string',
      address: '##string',
      birth_date: '##number',
      birth_place: '##string',
      phone_number: '##string'
   }
"""

* def keySchema =
"""
{
  id: '#string',
  color: '#string'
}
"""

* def roomSchema =
"""
  {
    number: '#string',
    state: '#string',
    owner: "#('##(ownerSchema)')",
    keys: '##[] keySchema'
  }
"""

* def clientSchema =
"""
  {
    id: '#string',
    surname: '##string',
    name: '#string',
    status: '#string',
    creation_date: '#number',
    left: '#boolean',
    rooms: '#[] roomSchema'
  }
"""
当我尝试验证它时: *匹配每个响应==clientSchema

错误是:路径$[0]['rooms'中缺少属性
这让我抓狂,我不知道。

这将在0.9.2版以后生效。

这将在0.9.2版以后生效。

我完全复制了你的代码,它对我有效。你用的是哪个版本?哦,对不起,我忘记写了,我用的是0.6.1。我已经把它改成了0.9.2,它还可以工作。我之前没有更新空手道,因为还有一个问题,但是如果我没有找到回复,我会在另一篇帖子中询问。谢谢@Adrien@nirind:你可以回答你自己的问题,这样解决办法就更明显了。鼓励你!我完全复制了你的代码,它对我很有用。你用的是哪个版本?哦,对不起,我忘记写了,我用的是0.6.1。我已经把它改成了0.9.2,它还可以工作。我之前没有更新空手道,因为还有一个问题,但是如果我没有找到回复,我会在另一篇帖子中询问。谢谢@Adrien@nirind:你可以回答你自己的问题,这样解决办法就更明显了。鼓励你!