[英]PHPUnit - Assert two XMLs are not equal
我剛剛開始向我的應用程序介紹一些PHPUnit測試,並想比較生成的兩個XML文件。 陽性測試不是問題,因為有專門的方法可以做到這一點:
$this->assertEqualXMLStructure(
$expectedResultXml->firstChild,
$generatedResultXml->firstChild
);
現在,我一直在尋找編寫一個否定測試,目的是故意創建一個無效的XML,以便它們不再匹配。 我已經搜索了一段時間,但是似乎找不到一個好的解決方案(類似於名為assertNotEqualXMLStructure();
)。 我真的是PHP新手,所以這可能是一個菜鳥問題。 抱歉,如果是這種情況。
如何根據兩個XML文件的結構測試它們是否相等?
您是否考慮過在PHP中比較它們的值? 您可以使用以下方法將XML轉換為PHP:
$xml = simplexml_load_string($xml_string); $json = json_encode($xml); $array = json_decode($json,TRUE);
然后,您可以比較數組中返回的結構(屬性也會在結果中拆分)
沒有像assertNotEqualXMLStructure()
這樣的方法,因為不需要它。 由於您的兩個XML文檔具有不同的結構,因此它們的文本表示不能相同。
您可以使用DOMNode::C14N()
將兩個節點的規范表示形式生成為文本,並斷言文本表示形式不相等(使用$this->assertNotEquals()
):
$this->assertNotEquals(
$expectedResultXml->firstChild->C14N(),
$generatedResultXml->firstChild->C14N()
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.