我需要比较两个XML文件,它们都有不同的实体顺序。
<root>
<parent1>
<parent2>
<value>1</value>
</parent2>
<parent2>
<value>2</value>
</parent2>
</parent1>
<parent1>
<parent2>
<value>3</value>
</parent2>
<parent2>
<value>4</value>
</parent2>
</parent1>
</root>与上面的示例一样,如果我在另一个xml文件中交换了1和2的位置,测试应该会通过。我使用diff.overrideElementQualifier(new RecursiveElementNameAndTextQualifier())来达到这个目的,但是它总是不能通过测试!
你能告诉我问题出在哪里吗?
发布于 2015-02-04 01:14:29
RecursiveElementNameAndTextQualifier适用于一个非常特定的用例,这就是为什么我们从来没有将它推广到examples包之外的原因。
它告诉XMLUnit比较元素a和元素b,如果(且仅当)它们的元素名称匹配,并且它们的嵌套文本相同,并且它们的所有子节点也按照它们作为子节点出现的顺序使用RecursiveElementNameAndTextQualifier进行限定。
在您的示例中,如果您交换了1和2,那么第一个parent1元素将不再符合条件,因为它的子元素使用严格的顺序不再符合条件。
您需要的是一个专门的ElementQualifier实现,因为没有任何内置限定符可以做您想要的事情。
https://stackoverflow.com/questions/12606959
复制相似问题