pact:验证数组是否包含匹配的哈希

2024-07-02 10:00:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个服务,它返回一个哈希数组,其顺序是不确定的。我需要验证是否存在一个具有特定键/值的散列,该散列中填充了数据,但其余的散列我不关心它们的数据。例如,如果服务返回:

[
    {
        "key":"meaningless1",
        "data": {

        }
    },
    {
        "key":"meaningless2",
        "data": {
            "some": "data",
            "goes": ["here"]
        }
    },
    {
        "key":"meaningful",
        "data": {
            "regex": "value",
            "integer": 1,
            "boolean": true
        }
    }
]

我想验证数组中是否存在一个具有"key":"meaningful"的散列,并且该散列中的data具有一个与正则表达式匹配的值的regex键,该键是一个整数,boolean是一个布尔值。我不关心其他哈希是否有数据,或者它们的数据是否与此模式匹配。在

我不能使用EachLike,因为这将根据所有散列来验证模式,而不仅仅是使用key的哈希。我也试过这样的方法:

^{pr2}$

但它只是尝试针对结果数组中的第0个元素进行验证,这意味着它尝试针对:

{
    "key":"meaningless1",
    "data": {

    }
},

我想要的可能吗?在


Tags: 数据keydatahere顺序valuesome数组
1条回答
网友
1楼 · 发布于 2024-07-02 10:00:02

这是目前不可能的。您可能想加入这个关于您所要求的功能的对话:https://github.com/pact-foundation/pact-specification/issues/38

但是,我要指出的一点是,当您可以控制提供者上的数据时,pact的效果最好。如果您无法控制数据,那么pact可能不是您的方案的最佳工具。阅读:https://github.com/pact-foundation/pact-ruby/wiki/Why-Pact-may-not-be-the-best-tool-for-testing-public-APIs

相关问题 更多 >