2010-10-15 11 views
9

Próbuję sprawdzić, czy mogę użyć XMLUnit do porównania dwóch różnych XML. Użyłem klasy Diff, aby porównać następujące dwa XML i sprawdzić dla podobnych zwrotów false.XMLUnit - Porównaj dwa XML ignorujące zamówienie podrzędne

XML One 
<Required> 
    <Question desc="Are you single?"> 
     <Answers> 
     <Answer value="Yes"/> 
     <Answer value="No"/> 
     </Answers> 
    </Question> 
</Required> 

XML Two 
<Required> 
    <Question desc="Are you single?"> 
     <Answers> 
     <Answer value="No"/> ''Order is reversed in XML two 
     <Answer value="Yes"/> 
     </Answers> 
    </Question> 
</Required> 

Oto mój kod JAVA:

Diff xmlDiff; 
try { 
    xmlDiff = new Diff(xmlOne, xmlTwo); 
    xmlDiff.overrideElementQualifier(new RecursiveElementNameAndTextQualifier()); 
} catch (Exception e) { } 
boolean isEqual = xmlDiff.similar() 

Odpowiedz

2

xmlDiff.similar powinien rade, ale mam doświadczenie, że to nie zawsze działa. Moim obejściem było posortowanie elementów przed porównaniem.

Należy pamiętać, że często dobrym pomysłem jest wbudowanie aplikacji, aby w zamówieniu było dobrze zdefiniowane zamówienie, ponieważ znacznie ułatwia to automatyczne testowanie.