0
我正在測試HTML構建器。我想斷言生成的內容與預期的內容匹配,但我希望在空白方面有一些靈活性。如何比較HTML而忽略空白?
具體來說,我不在乎標籤之間的空白是縮進還是縮進或者它們全部在一行上。我只關心標籤,順序,屬性和內容。
我該如何聲明兩個HTML片段相等?
我正在測試HTML構建器。我想斷言生成的內容與預期的內容匹配,但我希望在空白方面有一些靈活性。如何比較HTML而忽略空白?
具體來說,我不在乎標籤之間的空白是縮進還是縮進或者它們全部在一行上。我只關心標籤,順序,屬性和內容。
我該如何聲明兩個HTML片段相等?
自我回答,因爲我沒有在任何地方SO找到這個:基於一個PHP implementation of an HTML minifier
/**
* Compare two HTML fragments.
*/
protected function assertEqualHtml($expected, $actual)
{
$from = ['/\>[^\S ]+/s', '/[^\S ]+\</s', '/(\s)+/s', '/> </s'];
$to = ['>', '<', '\\1', '><'];
$this->assertEquals(
preg_replace($from, $to, $expected),
preg_replace($from, $to, $actual)
);
}
。
另請參閱[此解決方案](http://stackoverflow.com/questions/7167788/phpunit-asserting-identical-html-structure-regardless-of-whitespace),它使用PHPUnit的'assertXML'系列函數。 – bishop 2015-01-07 20:55:12