我正在编写用于检查某些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/

10-09 20:02