Я сравниваю сохраненный пример xml с живым marshalled xml в моем тестировании JUnit. Проверка наличия пары ключей в xml.XmlUnit order on value value
творю использование XmlUnit 2.1.0 конкретно
Мой XML выглядит следующим образом:
<entries>
<entry>
<key>delete</key>
<value>ENABLED</value>
</entry>
<entry>
<key>view</key>
<value>DISABLED</value>
</entry>
<entry>
<key>create</key>
<value>DISABLED</value>
</entry>
</entries>
Порядок записей может изменяться. Я не уверен, как заставить его правильно проверять, так как он видит другое ключевое значение как различие в xml, хотя это просто изменение заказа.
я утверждаю сходство с последующим утверждением в JUnit:
assertThat(marshalledXml, isSimilarTo(Input.fromFile("path/to/example.xml").ignoreWhitespace().ignoreComments());
Я подозреваю, что, возможно, придется использовать XPath matchers или DefaultNodeMatchers с ElementSelector.
Вам необходимо переопределить квалификатор элемента (см. Второй ответ на http://stackoverflow.com/questions/16540318/compare-two-xml-strings-ignoring-element-order) – Pace
Другой вопрос касается XMLUnit 1 .x, этот явно запрашивает XMLUnit 2.x, который имеет другой API. –