使用 XMLUnit 忽略测试 XML 中不存在的所有元素

Ignore all elements not present in the test XML with XMLUnit

在 XML 单元 2.x 中,我可以忽略实际 ("control") XML 中不存在于我的测试中的所有元素 ("expected") XML?

示例:

实际:

<a>123</a>
<b>456</b>
<c>789</c>

测试:

<b>456</b>
<c>xxx</c>

我想检测 <c> 中的差异,但完全忽略 <a> 标记,因为它不存在于测试中 XML.

想法是我有一个很大的XML我想比较,但是只有一个元素的子集我感兴趣,我不想给XML单元一个仍然有大量要忽略或不忽略的元素名称。

您可以在所有 CHILD_NODELIST_LENGTHCHILD_LOOKUP 比较中使用自己的 DifferenceEvaluator 和 return ComparisonResult.SIMILAR(甚至 EQUAL)。

如果您只想忽略测试文档中添加的元素(而不是忽略所有不存在于另一侧的独立于方向的元素)那么您应该只在控制长度大于时降级 CHILD_NODELIST_LENGTH测试长度和CHILD_LOOKUPs,其中测试端缺少节点。