cakephp4 测试标题长度
Posted
技术标签:
【中文标题】cakephp4 测试标题长度【英文标题】:cakephp4 test title length 【发布时间】:2021-06-05 11:44:08 【问题描述】:我需要在集成测试中测试页面标题的长度。 我有一个解决方案,但我想知道是否有更好的解决方案。
我的解决办法是:
$response = $this->get('/faqs/index');
$this->assertResponseOk();
$body=$this->_getBodyAsString();
preg_match('@<title>(.*)</title>@i',$body,$matches);
$this->assertTrue(strlen($matches[1])>10);
【问题讨论】:
我的意思是......我的问题是为什么你需要断言长度而不是说内容? 我猜是同样的问题?获取页面标题的最佳方法是什么? 【参考方案1】:避免使用正则表达式解析标记,最好使用 Xpath 查询:
$dom = new DOMDocument();
$dom->loadhtml($body);
$xpath = new DOMXPath($dom);
$elements = $xpath->query("//title");
$title = $elements->item(0)->nodeValue;
作为一种简单的方法,您可以获取标题,然后断言长度。
【讨论】:
以上是关于cakephp4 测试标题长度的主要内容,如果未能解决你的问题,请参考以下文章
如何在 cakephp4 中使用 Admad cakephp-glide 删除 Glide 缓存?
FormHelper::getSourceValue() 在 CakePHP4 中的验证错误时不返回实体
如何从 Cakephp4 中的 Helper 获取 $this->request->getAttribute('csrfToken')?
在 hasMany 中依赖 true 不能在 cakephp4 中的子节点上工作
如何在 jquery 中获取 FormHelper::postLink() 在 Cakephp4 中使用选项 'block' => true 生成的表单?