我无法使用PACT DSL .closeObject()
来格式化PACT交互响应。我正在寻求建议,以使这项工作或询问.closeObject()
是否按预期工作?我有一个购物车2项。当我尝试使用.closeObject()
对2个项目进行预期响应格式化时,它不会编译,请参阅下面的代码。编译错误是在第一个.closeObject()
之后,在".stringMatcher("name","iPhone")
之后。我需要在PACT文件预期响应中创建一个shoppingCartItems
的层次结构。 PACT DSL .closeObject()
的标榜使用,可以从这个链接可以发现,在“匹配,地图部分任意键” PACT DSL examples of using .closeObject()PACT DSL .closeObject格式化分层PACT文件交互,响应
private DslPart respSc6() {
DslPart body = new PactDslJsonBody()
.stringMatcher("id", "ShoppingCart_[0-9]*", "ShoppingCart_0")
.eachLike("shoppingCartItem")
.numberValue("quantity", 1)
.stringMatcher("state","new")
.object("productOffering")
.stringMatcher("id","IPHONE_7")
.stringMatcher("name","iPhone")
.closeObject()
.numberValue("quantity", 5)
.stringMatcher("state","new")
.object("productOffering")
.stringMatcher("id","SMSG_GLXY_S8")
.stringMatcher("name","Samsung_Galaxy_S8")
.closeObject()
.closeObject()
.closeArray();
return body;
}
预期JSON的响应有效负荷,应该像Expected PACT response payload with hierarchical data
究竟是什么编译错误信息?看起来你可能会多次关闭对象?此外,你有一个结束closeArray,但你永远不会在任何地方启动一个数组。我建议您使用JSON正文字符串匹配器,因为它使事情比使用DSL创建对象更简单一些。 –