我有一个返回哈希数组的服务,其顺序是不确定的。我需要验证是否存在一个具有特定键/值的散列,并且该散列填充了数据,但其余散列我不关心它们的数据。例如,如果服务返回:
[
{
"key":"meaningless1",
"data": {
}
},
{
"key":"meaningless2",
"data": {
"some": "data",
"goes": ["here"]
}
},
{
"key":"meaningful",
"data": {
"regex": "value",
"integer": 1,
"boolean": true
}
}
]
我想验证在数组中是否有一个具有 的散列"key":"meaningful"
,并且该data
散列中的散列具有regex
与正则表达式匹配的值的键,其中的键integer
是整数,并且其键boolean
是布尔值。我不在乎其他哈希是否有数据,或者他们拥有的数据是否与此模式匹配。
我不能使用EachLike
,因为这将针对所有哈希验证架构,而不仅仅是具有正确的哈希key
。我也尝试过这样的事情:
expected = [
{
"key":"meaningful",
"data":{
"regex":Term("v.*", "value"),
"integer":Like(1),
"boolean":Like(True)
}
}
]
但它只是试图验证结果数组中的第 0 个元素,这意味着它试图验证:
{
"key":"meaningless1",
"data": {
}
},
我想要的可能吗?