以下是重现的代码段:
@Test
public void testDifferentPrefix() {
final String control = "<ns:a xmlns:ns='abc'><b attr=\"xyz\"></b></ns:a>";
final String test = "<ns1:a xmlns:ns1='abc'><b attr=\"xyz\"></b></ns1:a>";
Diff myDiff = DiffBuilder.compare(Input.fromString(control))
.withTest(Input.fromString(test))
.build();
Assert.assertFalse(myDiff.toString(), myDiff.hasDifferences());
}
运行上述测试时,失败并出现以下错误:
预期的命名空间前缀&#39; ns&#39;但是&#ns; ns1&#39; - 在/ pfx比较:a [1]到at / pfx:a [1] junit.framework.AssertionFailedError 在NewEmptyJUnitTest.testDifferentPrefix(NewEmptyJUnitTest.java:95)
为避免错误,应该纠正什么?我相信我错过了一些微不足道的东西。
答案 0 :(得分:1)
通过不指定任何DifferenceEvaluator
,您隐式使用DifferenceBuilders.DEFAULT
,其中不同的名称空间前缀是&#34; SIMILAR&#34;差异。
如果你想忽略&#34; SIMILAR&#34;您必须在checkForSimilar()
上设置DiffBuilder
的差异。