首页 > 解决方案 > Pact:如何匹配键与正则表达式匹配的对象?

问题描述

我正在尝试编写一个契约消费者测试来匹配以下响应。

[
  {
      "accountId" : 1,
      "permissions" : [
         {
            "schedule" : {
               "01/01/2018" : false,
               "01/01/1900" : true
            },
            "permissionId" : 3
         }
      ]
   }
]

每个调度对象由与简单正则表达式匹配的未知数量的键组成。但是我看不到使用正则表达式匹配键的方法,同时将值映射到简单的布尔值。

例如,我在 API 中看到了以下方法。

public LambdaDslObject eachKeyLike(
        String exampleKey,
        Consumer<LambdaDslObject> nestedObject)

但这将期望一个新对象作为值,而不是原始类型。

"schedule" : {
  "01/01/2018" : { ... },    // not what I want to match
  "01/01/1900" : false       // what I want to match
}

有没有办法指定一个不精确的键映射到 pact-jvm 中的原始值?

标签: pactpact-jvmpact-java

解决方案


抱歉,此功能尚不存在,但已在下一版本的协议规范中进行了讨论。您可以在此问题上添加您的想法:https ://github.com/pact-foundation/pact-specification/issues/47


推荐阅读