情况是这样的,我最近试图对一些 API 做测试,测试的目的仅仅是模拟客户端的行为以及对接口的要求(比如要求什么样子的字段和结构),不考虑 API 的具体代码和复杂的逻辑检验。 其中有一个情况是,我想要测试其中部分 API 返回的 json 是否满足给定的结构,比如我期望某个 api 返回如下结构的 json:
{
"status" : "OK",
"msg" : [
{
"id" : 15,
"equipments" : [
{
"description": "desc_a",
"equip_type" : "type_a",
"id": 1
},
{
"description": "desc_b",
"equip_type" : "type_b",
"id": 2
},
{
"description": "desc_c",
"equip_type" : "type_c",
"id": 3
}
]
},
{
"id" : 17,
"equipments" : [
{
"description": "desc_d",
"equip_type" : "type_a",
"id": 4
},
{
"description": "desc_e",
"equip_type" : "type_b",
"id": 5
},
{
"description": "desc_f",
"equip_type" : "type_c",
"id": 6
}
]
}
]
}
类似这种结构,同时又考虑到服务器端返回的数组可能为空数组,这种情况也认为结构符合要求。 对于这种类型的比较,在 rspec 或 ruby 中有没有现成的 gem 可以使用? 如果没有的话,自己比较需要解决两个问题: 1、如何描述期待的数据结构 2、如何将期待的结构与实际返回的做对比