我正在编写用于检查某些XML构建器的单元测试。
现在,尽管语义相同,但我还是遇到了预期结果与实际结果之间在语法上存在差异的问题。
示例:
预期结果:
<parent><child attr="test attribute">text here</child></parent>
实际结果:
<parent>
<child attr="test attribute">
text here
</child>
</parent>
我尝试使用XmlUtil.serialize()规范化xml,但是这似乎保留了空格,并留下了语法上的差异。
我如何获得xml字符串的规范化/规范化形式,以使我的测试更加健壮?
我正在编写Grails应用程序,因此我对Groovy或Java中的任何解决方案都满意。
最佳答案
您可以像这样使用Groovy XMLUnit 实用程序:
XMLUnit.setIgnoreWhitespace(true)
XMLUnit.setIgnoreComments(true)
XMLUnit.setIgnoreDiffBetweenTextAndCDATA(true)
XMLUnit.setNormalizeWhitespace(true)
XMLUnit.compareXML(expectedXml, actualXml)
比较XML文件而忽略语法差异。
关于java - 在Groovy/Java中比较两个XML字符串/文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13727876/