Automation 空手道;对象类型未被删除,将TypeError抛出为";“不是一个对象”;

Automation 空手道;对象类型未被删除,将TypeError抛出为";“不是一个对象”;,automation,karate,Automation,Karate,通过测试,我希望对数组中的json对象进行一些评估。示例如下所示: "sections": [ { "internal_id": 10635, "uuid": "a56357fa-fbe6-BARS-89d4-8e8fdbda18b0", }, { "internal_id": 10636, "uuid": "33a4c634-BARS-4b20-ac3d-54370b32d989", }, { "internal_id": 10637

通过测试,我希望对数组中的json对象进行一些评估。示例如下所示:

"sections": [
  {
    "internal_id": 10635,
    "uuid": "a56357fa-fbe6-BARS-89d4-8e8fdbda18b0",
  },
  {
    "internal_id": 10636,
    "uuid": "33a4c634-BARS-4b20-ac3d-54370b32d989",
  },
  {
    "internal_id": 10637,
    "uuid": "99443ce8-5007-4ec2-BARS-b459df30d33b",
  },
  {
    "internal_id": 10638,
    "uuid": "4a54a868-1bfa-BAZZ-93b1-d95a4b529cdf",
  }
]
在进行一些调试时,我执行了以下操作:

*打印类型(第[0]节)
=>返回时表示
对象

我已尝试通过以下方式评估单个对象:

*eval Object.key(节[0])长度=>这将返回
TypeError:不是


我对JS没有太多的经验,但是有人能帮我解决这个问题吗?

您可以为单个JSON对象编写一个预期的模式,然后使用
匹配每个
来验证JSON数组中的所有数据

* def sectionArray =
"""
{
"sections": [
  {
    "internal_id": 10635,
    "uuid": "a56357fa-fbe6-BARS-89d4-8e8fdbda18b0",
  },
  {
    "internal_id": 10636,
    "uuid": "33a4c634-BARS-4b20-ac3d-54370b32d989",
  },
  {
    "internal_id": 10637,
    "uuid": "99443ce8-5007-4ec2-BARS-b459df30d33b",
  },
  {
    "internal_id": 10638,
    "uuid": "4a54a868-1bfa-BAZZ-93b1-d95a4b529cdf",
  }
]
}
"""
* match each sectionArray.sections == {"internal_id":"#present","uuid":"#present"}
您还可以通过以下方式验证阵列的大小:

* match sectionArray.sections == "#[4]"

请参阅

您想从这个JSON数组验证什么???@BabuSekaran所有您的:)@BabuSekaran,我想验证对象的长度是否为2。或者,基本上验证JSON数组中的每个对象的大小是否相同。在我编写断言之前的调试中,这让我想起了为什么即使类型被列为ObjectOK,我也无法计算该对象,所以,据我所知,通过在两个键上匹配
“#present”
,这表明,如果每个对象有一个键或超过2个键,它将失败?每个JSON对象应该只有
internal\u id
uuid
键,任何其他情况都将失败。