如何用pact-jvm中的异构数组表示响应

问题描述 投票:0回答:1

我无法弄清楚如何在契约契约中用数组中的结构不同的对象来表示数组。

来自pact-spec-v3

还需要定义匹配器是否应与逻辑AND(所有匹配器必须匹配)或OR(至少一个匹配器必须匹配)组合。 AND应该是默认值,但有些情况下OR是有意义的

这可以用来“对”两种不同类型的对象进行“或”运算吗?

这是我试图通过pact-jvm DSL进行建模的响应,suggestions数组包含两个不同类型的对象,'1'和'3',具有不同的模式 -

{
  "suggestions": [
    {
      "display_name": "Potato",
      "type": 1,
      "keyword": "Potato",
      "category_l1": {
        "icon_image_url": "XXXXX",
        "id": 1489,
        "name": "Potato"
      }
    },
    {
      "type": 3,
      "suggestion": {
        "display_name": "New Potato (Aloo)",
        "name": "New Potato"
      }
    }
  ]
}

我到目前为止的代码:

private DslPart getBody() {
    return new PactDslJsonBody()
            .eachLike("suggestions", 1)
                    .stringType("display_name")
                    .integerType("type")
                    .stringType("keyword")
                    .object("category_l1")
                        .stringType("icon_image_url")
                        .stringType("name")
                        .integerType("id")
                    .closeObject()
                    .closeObject()
            .closeArray();
}
pact pact-jvm
1个回答
1
投票

目前使用Pact进行建模并不容易,它假设每个项目与提供的示例类似。有关讨论,请参阅https://github.com/pact-foundation/pact-specification/issues/38

© www.soinside.com 2019 - 2024. All rights reserved.