2013-05-22 4 views
1

J'utilise xmlunit pour comparer deux fichiers texte. Le xml de contrôle est:XmlUnit et les nœuds enfants

<books> 
    <book> 
     <name>Angels &amp; Demons</name> 
     <isbn>9971-5-0210-0</isbn> 
     <author>Dan Brown</author> 
     <category></category> 
    </book> 
</books> 

Je compare cette contre un autre morceau de xml qui a les éléments et permuté.

<books> 
    <book> 
     <isbn>9971-5-0210-0</isbn> 
     <name>Angels &amp; Demons</name> 
     <author>Dan Brown</author> 
     <category></category> 
    </book> 
</books> 

L'objet Diff indique la différence suivante:

Expected sequence of child nodes '1' but was '3' - comparing <name...> at /books[1]/book[1]/name[1] to <name...> at /books[1]/book[1]/name[1] 

Si <name> est nœud enfant '1', ne serait pas <isbn> être nœud enfant '2'?

+0

Il semble que xmlunit est compte des retours chariot dans le fichier XML en tant que nœuds enfants. La définition de \t \t \t ** XMLUnit.setIgnoreWhitespace (true); ** a donné un résultat plus intuitif de 'Séquence attendue de nœuds enfants '0' mais était '1' - en comparant à/struct [1]/int [1] à à/struct [1]/int [1] ' – timmy

Répondre

0

Il semble que XmlUnit compte les retours chariot dans le XML en tant que nœuds enfants. Définir le XMLUnit.setIgnoreWhitespace suivant (true); a donné un résultat plus intuitive de la séquence prévue des nœuds enfants '0', mais était '1' - la comparaison <int...> at /struct[1]/int[1] to <int...> at /struct[1]/int[1]

1

Pour xmlunit 2.X Version:

Pour la version xmlunit 2.xx, le xmlunit. setIgnoreWhitespace (true) n'est plus applicable. Maintenant, vous pouvez ajouter le "ignorer les espaces" directement dans DiffBuilder en ajoutant DiffBuilder.ignoreWhitespace().

Diff diffXml =DiffBuilder.compare(expectedXml).withTest(actualXml).normalizeWhitespace().checkForSimilar().build(); 

Pour affirmer que les xml sont similaires, vous pouvez par exemple faire:

MatcherAssert.assertThat(diffXml.toString(), is("[identical]")); 

Pour info furhter sur les changements entre 1.x à 2.x voir: https://github.com/xmlunit/user-guide/wiki/Migrating-from-XMLUnit-1.x-to-2.x

Questions connexes