PHPUnit утверждает идентичную структуру HTML независимо от пробела

У меня есть скрипт командной строки, который генерирует HTML, который я пытаюсь протестировать с помощью PHPUnit. Обратите внимание, что этот HTML не виден браузером , поэтому Selenium не является подходящим решением для этого.

Меня интересует только сравнение фактической структуры HTML. Я использую assertEquals(), но фактические строки могут быть не совсем идентичными из-за различных пробельных символов.

public function testHtmlIsIdentical()
{
    $expectedReport = file_get_contents('expected.html');
    $this->report->setupSomeData('test data');
    $actualReport = $this->report->generateHtml();
    $this->assertEquals($expectedReport, $actualReport);
}

Что я могу сделать, чтобы сравнить структуру (узлы) HTML вместо строк HTML? Есть ли функция PHPUnit, которая позволяет это? Существует ли отдельная библиотека для сравнения HTML?

Решение:

PHPUnit имеет утверждения для сравнения XML:

AssertXmlStringEqualsXmlFileassertXmlStringEqualsXmlFile прекрасно работает в этом сценарии:

public function testHtmlIsIdentical()
{
    $this->report->setupSomeData('test data');
    $this->assertXmlStringEqualsXmlFile('expected.html', $this->report->generateHtml());
}

9
задан edorian 11 January 2012 в 12:24
поделиться