4

我有一个使用 JDOM2 库生成 XML 文档的应用程序。在我的单元/集成测试中,我需要将生成的文档与手工制作的示例文档进行比较,以确定是否相等。

使用标准的 org.w3c.dom.Document 对象,我会通过 XMLUnit 来实现。如何用 JDOM2 做到这一点?

4

1 回答 1

2

JDOM API 本身不支持对 JDOM 进行深度等于。您将需要构建自己的。这是 JDOM 2.1 的一个很好的潜在功能......嗯。也许我会添加类似的东西(但它需要相对复杂才能正确)。

两个 JDOM 文档的深度相等是复杂的。您将需要比较名称空间、属性、注释、处理指令等。通常(其中一些)这些差异并不重要 - 例如注释或空白差异:也许一侧有两个文本成员 Text("Hello ")和 Text("World!"),而另一个可能只有一个文本成员 Text("Hello World!")。他们是一样的吗?

我的建议是使用 JDOM2 的一些便利功能(如 getDescendants() 迭代器),然后执行您自己的逻辑来比较两个迭代器。

我将考虑一种带有某种回调接口的原生 JDOM API 机制,以便可以进行深度比较(可能有一些组织 Comparable 结果(负数、0 或正数)的东西,用于小于、等于或大于.

于 2013-06-29T16:59:18.173 回答