You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel视图测试assertSee因HTML空格失败,如何忽略空格?

解决Laravel视图测试中HTML空格导致断言失败的问题

方法1:使用正则匹配(assertSeePattern)

直接用正则表达式匹配,把预期字符串中的空格替换成可匹配任意空白字符(包括换行、制表符、连续空格)的\s+,就能忽略渲染后HTML里的多余空白。

示例代码:

$this->view->assertSeePattern('/<a\s+href="\/customer\/member\/delete\/1"\s+class="btn btn-secondary delete-button"\s*>Delete<\/a>/');

注意转义正则里的特殊字符,比如斜杠/要加反斜杠转义。

方法2:统一去除多余空白后断言

把视图渲染的内容和预期字符串都处理成“压缩”格式——去掉所有多余空白(换行、连续空格),只保留单个空格,再进行断言。

示例代码:

// 处理视图输出
$rendered = preg_replace('/\s+/', ' ', trim($this->view->render()));
// 处理预期字符串
$expected = preg_replace('/\s+/', ' ', trim('<a href="/customer/member/delete/1" class="btn btn-secondary delete-button">Delete</a>'));

$this->assertEquals($expected, $rendered);

方法3:检查关键内容的顺序(assertSeeInOrder)

如果不需要精确匹配整个HTML标签,只需要确认按钮的关键部分存在且顺序正确,可以用assertSeeInOrder,分别传入href值、class值、按钮文本,不管中间有多少空格都不影响。

示例代码:

$this->view->assertSeeInOrder([
    '/customer/member/delete/1',
    'btn btn-secondary delete-button',
    'Delete'
]);

内容的提问来源于stack exchange,提问作者Daevne

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 09:35:34