XMLUnit是用来比较两个xml的内容是否一样的Java类库。
在用它之前,我都是用XML String是否相等来比较两个XML是否相等的,但是碰到了如下问题:
1.有时候两个xml只是节点顺序不一样,但是仍然是相等的,比如下面两个xml:
xml1
123
456
xml2
456
123
2.有时候两个xml里面的空行或空格不一致,但是仍然是相等的。
3.有时候一个xml里面有一个空节点,另外一个xml里面没有这个节点,其实两个xml还是等价的,比如下面两个xml:
xml1
xml2
XMLUnit还可以让你自己定义和配置你的各种比较需求,示例如下:
Diff myDiff = DiffBuilder.compare(control)
.withTest(test)
.checkForSimilar().checkForIdentical() // [1]
.ignoreComments() // [2]
.ignoreWhitespace() // [3]
.normalizeWhitespace() // [4]
.withComparisonController(ComparisonController) // [5]
.withComparisonFormatter(comparisonFormatter) // [6]
.withComparisonListeners(comparisonListeners) // [7]
.withDifferenceEvaluator(differenceEvaluator) // [8]
.withDifferenceListeners(comparisonListeners) // [9]
.withNodeMatcher(nodeMatcher) // [10]
.withAttributeFilter(attributeFilter) // [11]
.withNodeFilter(nodeFilter) // [12]
.withNamespaceContext(map) // [13]
.withDocumentBuilerFactory(factory) // [14]
.ignoreElementContentWhitespace() // [15]
更多的例子可以参考:
https://github.com/xmlunit/user-guide/wiki