Ну, есть DomDocument
, и если вы хотите проверить, соответствует ли порядок элементов HTML, вы можете использовать это.
Если все, что отличается, является лишним пробелом, возможно, попробуйте:
$expectedDom = new DomDocument();
$expectedDom->loadHTMLFile('expected.html');
$expectedDom->preserveWhiteSpace = false;
$actualDom = new DomDocument();
$actualDom->loadHTML($this->report->generateHtml());
$actualDom->preserveWhiteSpace = false;
$this->assertEquals($expectedDom->saveHTML(), $actualDom->saveHTML());
См. preservewhitespace
.
Что также стоит изучитьassertEqualXMLStructure
, так как это можно использовать и для сравнения HTML:
assertEqualXMLStructure(
DOMElement $expectedElement,
DOMElement $actualElement
[, bool $checkAttributes = false,
string $message = '']
)
Но вы можете снова столкнуться с проблемами с пробелами, поэтому, возможно, вам придется удалить их перед сравнением.Преимущество использования DOM состоит в том, что вы получаете гораздо более приятные отчеты об ошибках в случае, если документы не совпадают.
Другой способ тестирования генерации XML / HTML описан в Практический PHPUnit: тестирование генерации XML .