簡體   English   中英

PHPUnit-斷言兩個XML不相等

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM