Я пытаюсь сравнить 2 XML-файла с использованием XMLUnit 1.2. Я использую квалификатор RecursiveElementNameAndTextQualifier ().
При изменении порядка порядка некоторых сущностей в моем XML это приводит к тому, что XMLUnit передает некоторые случаи и завершается ошибкой в других случаях.
Мой XML-файл выглядит следующим образом, и я сравниваю его с аналогичной копией с простой заменой местоположения одного узла атрибутов.
<root>
<ent>
<value>
<int>1</int>
</value>
<value>
<int>2</int>
</value>
</ent>
<ent>
<value>
<int>3</int>
</value>
<value>
<int>4</int>
</value>
</ent>
</root>
При замене int: 1 на int: 2 в одном из файлов XML проверка завершается неудачно. Но при замене int: 4 на int: 3 он продолжает проходить.
Вот мой код тестирования:
public void testRecursiveElement() throws Exception {
InputSource xml1 = new InputSource("xml1.xml");
InputSource xml2 = new InputSource("xml2.xml");
Diff myDiff = new Diff(xml1, xml2);
myDiff.overrideElementQualifier(new RecursiveElementNameAndTextQualifier() );
assertXMLEqual("Not similar", myDiff, true);
}
Можете ли вы посоветовать, в чем проблема и почему XMLUnit обнаруживает разницу в первом случае, а не во втором. Есть ли решение этой проблемы?