我正在使用提供的几乎完全开箱即用的注册流程Laravel 7。
当我尝试通过网络浏览器中的表单提交无效的注册表单时,我会返回到注册页面,其中包含错误列表,这正是我期望发生的情况。
但是,我正在尝试为此功能编写一个单元测试,但由于某种原因,当我在单元测试中发出相同的请求时,我得到了重定向到 root page 的响应/。
为什么我的单元测试没有返回与通过浏览器发出相同请求时相同的 HTML 响应?我怀疑这可能是由于请求中缺少发送的 CSRF 令牌,但根据文档,CSRF 中间件应该在单元测试期间被禁用。
运行测试时,CSRF 中间件会自动禁用。
这是我的单元测试代码:
public function testPostInvalidRegistration(){
$response = $this->post("/register",[
'first_name' => $this->faker->name
]);
$response->dumpSession();
$response->dump();
$response->dumpHeaders();
}
这是输出$response->dump()
<!DOCTYPE html>\n
<html>\n
<head>\n
<meta charset="UTF-8" />\n
<meta http-equiv="refresh" content="0;url='http://localhost'" />\n
\n
<title>Redirecting to http://localhost</title>\n
</head>\n
<body>\n
Redirecting to <a href="http://localhost">http://localhost</a>.\n
</body>\n
</html>
我$response->dumpSession()
可以看到验证器已运行并列出了错误。
智慧大石