Сравнение XML с использованием XMLUnit RecursiveElementNameAndTextQualifier - PullRequest
0 голосов
/ 30 января 2009

Я пытаюсь сравнить 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 обнаруживает разницу в первом случае, а не во втором. Есть ли решение этой проблемы?

1 Ответ

0 голосов
/ 10 февраля 2009

Я пытался воспроизвести поведение, которое вы описали, но безуспешно. При использовании RecursiveElementNameAndTextQualifier порядок элементов не имеет значения. Таким образом, ни подкачка int: 1 и int: 2, ни подкачка int: 3 и int: 4 не привели к ошибке утверждения в моих тестах.

Я не знаю, какое поведение вы ожидаете, но изменение RecursiveElementNameAndTextQualifier на ElementNameAndTextQualifier привело к ошибкам утверждения для обоих случаев подкачки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...