我无法弄清楚如何在契约契约中用数组中的结构不同的对象来表示数组。
还需要定义匹配器是否应与逻辑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进行建模并不容易,它假设每个项目与提供的示例类似。有关讨论,请参阅https://github.com/pact-foundation/pact-specification/issues/38