Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHPUnit,断言html内容_Php_Zend Framework_Phpunit - Fatal编程技术网

PHPUnit,断言html内容

PHPUnit,断言html内容,php,zend-framework,phpunit,Php,Zend Framework,Phpunit,用phpunit断言html字符串中的某些内容的最佳方法是什么 在Zend应用程序中,有大量断言可用。但是如果您不在Zend应用程序中资产XML*看起来不合适 例如,考虑到更改id属性的位置不会使测试失败,您如何断言标记..存在于$htmlString中?我建议您使用一些库解析HTML字符串,然后使用库API编写断言 有很多优秀的HTML/XML解析器,例如: 通过使用CSS选择器、xpath等,您可以访问任何所需的节点,并且可以检查属性是否独立于其位置而存在 $crawler = new C

用phpunit断言html字符串中的某些内容的最佳方法是什么

在Zend应用程序中,有大量断言可用。但是如果您不在Zend应用程序中<代码>资产XML*看起来不合适


例如,考虑到更改id属性的位置不会使测试失败,您如何断言标记
..
存在于
$htmlString
中?

我建议您使用一些库解析HTML字符串,然后使用库API编写断言

有很多优秀的HTML/XML解析器,例如:

通过使用CSS选择器、xpath等,您可以访问任何所需的节点,并且可以检查属性是否独立于其位置而存在

$crawler = new Crawler($html);
$this->assertEquals(1, $crawler->filter('div#elementId')->count());
您还可以编写一个自定义断言来自动执行此过程,以便断言:

$this->assertHtmlContainsSelector($html, 'div#elementId');

这是个好办法。考虑到您的
爬虫
示例,我更倾向于考虑php内置函数或预装库。我将对
DOMDocument
进行类似操作,即
$doc=DOMDocument$doc->loadHTML($html)$这->资产真((bool)$doc->getElementById('elementId')