xmlunit – 比较两个JDOM2文档是否相等

我有一个使用JDOM2库生成
XML文档的应用程序.在我的单元/集成测试中,我需要将生成的文档与手工制作的样本文档进行比较以获得相等性.

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

最佳答案 JDOM API本身不支持与JDOM进行深度等式.你需要建立自己的.这是JDOM 2.1的一个很好的潜在功能….嗯.也许我会添加类似的东西(但要做到正确需要相对复杂).

两个JDOM文档的深度等同很复杂.您需要比较命名空间,属性,注释,处理指令等.这些差异通常(某些)并不重要 – 比如注释或空白区别:也许一方有两个文本成员Text(“Hello”)和文本(“世界!”),另一个可能有一个文本成员文本(“Hello World!”).它们是一样的吗?

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

我将考虑一个原生的JDOM API机制,它具有某种回调接口,因此可以进行深度比较(可能是为了小于,等于或大于组织可比较结果(负,0或正)的东西. .

点赞