安心して統合テストを設定しようとしています。私のテストケースの1つでは、GroovyのGPathを使用しているように見えるREST-assuredのXmlPathを使用してXMLファイルのいくつかのプロパティを検証する必要があります。
次の構造のXMLドキュメントがあります(IDは一意です)。
<rootelement>
<someelement id="1234" type="a">
<property key="hello" value="world" />
<property key="name" value="a name" />
<property key="status" value="new" />
<child target="645823" type="a" />
<child target="7482" type="b" />
<child target="8942" type="c">
<property key="pro" value="yes" />
</child>
</someelement>
<someelement>
...
</someelement>
<rootelement>
理想的には、someelement idが与えられた場合、そのプロパティのマップを取得したいと思います。つまり、与えられたsomeelement idが1234であると仮定して、次のようなマップを取得したいと思います
{"hello": "world", "name": "a name", "status": "new"}
。どうすればいいですか?XmlPathにgetMapメソッドがあることは知っていますが、どの式を使用する必要があるのかわかりませんでした。
プロパティをマップとして取得できない場合は、キーのリストと値のリストを取得することに満足します。繰り返しますが、どの式を使用する必要があるのかわかりません。私はそのようなことを試みました:
xmlPath.getList("**.find {it.@id = '1234'}.property.@key", String.class)
しかし、何も見つかりません。