2017-01-30 58 views
0

在XMLUnit 2.x中,我可以忽略实际(“控制”)XML中不存在于我的测试(“预期”)XML中的所有元素吗?忽略测试XML中不存在的所有元素XMLUnit

例子:

实际:

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

测试:

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

我将要检测的差异<c>但完全忽略<a>标签,因为它不存在于测试XML。

这个想法是我想要比较一个大的XML,但只有一部分元素对我来说很有趣,而且我不想给XMLUnit一个大的元素名称列表来忽略或不要忽视。

回答

1

您可以使用自己DifferenceEvaluator,并在所有CHILD_NODELIST_LENGTHCHILD_LOOKUP比较返回ComparisonResult.SIMILAR(甚至EQUAL)。

如果你只是想忽略你的测试文档中添加(而不是忽略不存在对对方独立方向的所有元素)的元素,那么你应该只降级CHILD_NODELIST_LENGTH如果控制长度比测试长度和CHILD_LOOKUP较大s节点在测试端丢失的地方。

+0

谢谢!为了完全满足我的要求,我需要添加一些逻辑:对于'CHILD_NODELIST_LENGTH',只忽略控件长度大于测试长度的情况;和'CHILD_LOOKUP'仅在控件不为null并且测试为null时忽略。如果您将此添加到您的答案,我会接受它。编辑了 – jhyot

+0

,谢谢@jhyot –

相关问题