2010-10-15 4 views
9

alt öğelerini dikkate almazken iki XML karşılaştırması Aşağıdaki iki farklı XML'i karşılaştırmak için XMLUnit kullanıp kullanamayacağımı görmeye çalışıyorum. Aşağıdaki iki XML karşılaştırmak ve benzer döndürmeleri yanlış olarak denetlemek için Diff sınıfını kullandım.XMLUnit -

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> 

İşte benim JAVA kodu:

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

cevap

2

xmlDiff.similar gerektiği hile yapmak, ama bu her zaman çalışmadığını yaşadıysanız. Çözümüm, karşılaştırmadan önce öğeleri sıralamaktı.

Otomatik test yapmayı çok daha kolay hale getirdiğinden, çıkışınızda iyi tanımlanmış bir sıralamaya sahip olmanız için uygulamanızı oluşturmak genellikle iyi bir fikir olduğuna dikkat edin.