2017-01-30 91 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 –

相關問題