我已使用以下代码将字符串转换为XML文档:
String xmlStr = "<msg><uuid>12345</uuid></msg>"
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder;
try {
builder = factory.newDocumentBuilder();
Document doc = builder.parse(new InputSource(new StringReader(xmlStr)));
return doc;
} catch (Exception e) {
throw new RuntimeException(e);
}
然后我将XML文件转换为具有以下内容的文档:
File file = new File("src/test/resources/xmlForJunitTest.xml");
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document expectedDoc = db.parse(file);
最后我比较了两个文件:
Document actualDoc = XmlUtils.convertStringToDocument(xmlString);
Diff myDiff = new Diff(expectedDoc, actualDoc);
assert (myDiff.similar());
此测试使用格式如下的XML文件(xmlForJunitTest.xml)传递:
<msg><uuid>12345</uuid></msg>
它失败了:
<msg>
<uuid>12345</uuid>
</msg>
请你能说明为什么会发生这种故障,以及解决方案是什么?
答案 0 :(得分:0)
断言失败,因为一个文档包含空格,而另一个文档不包含空格。我相信你需要查看normalizeWhitespace
中的XmlUnit
标志(假设你正在使用它)。