阅读(51)
赞(10)
Laravel 8 Session / 身份验证
2021-07-08 09:45:50 更新
Laravel 提供了几个可在 HTTP 测试时使用 Session 的辅助函数。首先,你需要传递一个数组给 withSession
方法来设置 session 数据。这样在应用程序的测试请求发送之前,就会先去给数据加载 session:
<?php
class ExampleTest extends TestCase
{
public function testApplication()
{
$response = $this->withSession(['foo' => 'bar'])
->get('/');
}
}
当然,一般使用 session 时都是用于维护用户状态,如用户认证。actingAs
辅助函数提供了简单的方法来指定的用户认证为当前用户。例如,我们可以使用 工厂模式 来生成并认证用户:
<?php
use App\Models\User;
class ExampleTest extends TestCase
{
public function testApplication()
{
$user = User::factory()->create();
$response = $this->actingAs($user)
->withSession(['foo' => 'bar'])
->get('/');
}
}
你也可以通过传递看守器名称作为 actingAs
方法的第二参数以指定用户通过哪种看守器来认证:
$this->actingAs($user, 'api')