PACT相互作用応答をフォーマットするためにPACT DSL .closeObject()
を使用することができません。私はこの仕事をするための提案や、.closeObject()
が意図したとおりに動作していないかどうかを尋ねていますか?私は2つの項目を持つショッピングカートを持っています。 .closeObject()
を使用して2つのアイテムを使用して、期待される応答をフォーマットしようとすると、コンパイルされません。以下のコードを参照してください。コンパイルエラーは、最初に.closeObject()
にあり、".stringMatcher("name","iPhone")
行の後です。私はshoppingCartItems
の階層を作成する必要があります。 PACTのDSL .closeObject()
の広告を出しての使用は、で、このリンクから見つけることができPACT DSL examples of using .closeObject()PACT DSL .close階層的な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
コンパイルエラーメッセージとは何ですか?オブジェクトを1回何回も閉じるかもしれないようですね。また、閉じるcloseArrayがありますが、どこでも配列を開始することはありません。 JSON本体文字列マッチャーを使用することをお勧めします。これは、DSLを使用してオブジェクトを作成するよりも少し簡単になるからです。 –