PHPUnit-断言两个XML不相等

PHPUnit-断言两个XML不相等,php,xml,phpunit,Php,Xml,Phpunit,我刚刚开始在我的应用程序中引入一些PHPUnit测试,并希望比较生成的两个XML文件。阳性检测不是问题,因为有专门的方法: $this->assertEqualXMLStructure( $expectedResultXml->firstChild, $generatedResultXml->firstChild ); 现在,我一直在寻找编写一个否定的测试,我故意创建一个无效的XML,使它们不再匹配。我已经在谷歌上搜索了一段时间,但似乎找不到好的解决方案(比如一个名为

我刚刚开始在我的应用程序中引入一些PHPUnit测试,并希望比较生成的两个XML文件。阳性检测不是问题,因为有专门的方法:

$this->assertEqualXMLStructure(
  $expectedResultXml->firstChild,
  $generatedResultXml->firstChild
);
现在,我一直在寻找编写一个否定的测试,我故意创建一个无效的XML,使它们不再匹配。我已经在谷歌上搜索了一段时间,但似乎找不到好的解决方案(比如一个名为
assertNotEqualXMLStructure();
)的方法)。我对PHP真的很陌生,所以这可能是一个noob问题;如果是这样的话,我很抱歉


如何测试两个XML文件的结构是否不相等?

您考虑过在PHP中比较它们的值吗?您可以使用以下方法将XML转换为PHP:

$xml=simplexml\u load\u字符串($xml\u字符串);
$json=json_encode($xml);
$array=json_decode($json,TRUE)


然后您可以比较数组中返回的结构(属性在结果中也会被拆分)

没有类似于
assertNotEqualXMLStructure()的方法,因为它是不需要的。由于两个XML文档具有不同的结构,因此它们的文本表示形式不能相同

您可以使用
DOMNode::C14N()
生成两个节点作为文本的规范表示,并断言文本表示不相等(使用):


输入的Thx。
$this->assertNotEquals(
    $expectedResultXml->firstChild->C14N(),
    $generatedResultXml->firstChild->C14N()
);