Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用RecursiveElementNameAndTextQualifier(XMLUnit)_Java_Unit Testing_Xmlunit - Fatal编程技术网

Java 使用RecursiveElementNameAndTextQualifier(XMLUnit)

Java 使用RecursiveElementNameAndTextQualifier(XMLUnit),java,unit-testing,xmlunit,Java,Unit Testing,Xmlunit,我需要比较两个XML文件,它们都有不同的实体顺序 <root> <parent1> <parent2> <value>1</value> </parent2> <parent2> <value>2</value> </parent2> </parent1> <parent1>

我需要比较两个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.overrideElementQualifiernew RecursiveElementName和TextQualifier来实现此目的,但它始终未能通过测试

您能告诉我问题出在哪里吗?

递归元素名称和文本限定符适用于非常特定的用例,这就是为什么我们从未将其从示例包中提升出来

它告诉XMLUnit,当且仅当元素a和元素b的元素名匹配且嵌套文本相同,并且它们的所有子节点也按照它们作为子节点出现的顺序使用RecursiveElementNameAndTextQualifier进行限定时,才比较元素a和元素b

在您的示例中,如果交换1和2,则第一个parent1元素将不再符合条件,因为其子元素不符合严格的顺序

您需要的是一个专门的ElementQualifier实现,因为没有内置的限定符能够完全满足您的需要