У меня есть проблема в сравнении строк xml.Игнорировать различия в текстах при сравнении XML с xmlunit
Моя функция сравнения
public static boolean compareXMLs(String xmlSource, String xmlCompareWith){
XMLUnit.setIgnoreWhitespace(true);
XMLUnit.setIgnoreComments(true);
XMLUnit.setIgnoreAttributeOrder(true);
XMLUnit.setNormalizeWhitespace(true);
XMLUnit.setIgnoreDiffBetweenTextAndCDATA(true);
Diff myDiff = new Diff(xmlSource, xmlCompareWith);
myDiff.overrideDifferenceListener(new IgnoreTextAndAttributeValuesDifferenceListener());
return myDiff.similar();
}
Мой блок тест
String xml1 = "<a>f</a>";
String xml2 = "<a>1</a>";
assertEquals(true, RestCommonUtility.compareXMLs(xml1, xml2));
xml1 = "<a></a>";
xml2 = "<a>1</a>";
assertEquals(true, RestCommonUtility.compareXMLs(xml1, xml2));
Мой блок тест пройден в первой утверждают, но терпит неудачу в 2 утверждают. Я установил IgnoreTextAndAttributeValuesDifferenceListener
, но все же мое второе утверждение терпит неудачу. Есть ли способ решить эту проблему? Или есть ли какие-либо другие рамки для такого сравнения?
попробуйте toString на diff - от того, что я помню, игнорирует, просто не сравнивает текст, но подтверждает его там – farrellmr
Ya, когда я использую новый xmlunit, это говорит о CHILD_NODELIST_LENGTH. Это другое. Но я тоже не хочу этого игнорировать. –
Примечание: используйте 'assertTrue (foo)', а не 'assertEquals (true, foo)'. –