Php Laravel 5.4测试-无法登录
我正在尝试以用户身份登录Laravel测试,代码如下:Php Laravel 5.4测试-无法登录,php,laravel,unit-testing,phpunit,Php,Laravel,Unit Testing,Phpunit,我正在尝试以用户身份登录Laravel测试,代码如下: class AdminTest extends TestCase { use DatabaseMigrations; public function setUp() { parent::setUp(); $this->admin = factory(User::class)->create([ 'is_admin' => true,
class AdminTest extends TestCase
{
use DatabaseMigrations;
public function setUp()
{
parent::setUp();
$this->admin = factory(User::class)->create([
'is_admin' => true,
]);
}
public function test_admin_can_create_clients()
{
$this->startSession()
->actingAs($this->admin, 'web')
->get('/clients')
->assertStatus(200);
}
}
然而,我总是失败:
1) Tests\Feature\AdminTest::test\u admin\u可以创建\u客户端
预期状态代码为200,但收到403。断言false为true失败
当我在谷歌上搜索时,我发现我必须启动会话,但即使这样也不行
我尝试使用be
,但出现以下错误:
1) Tests\Feature\AdminTest::test\u admin\u可以创建\u客户端
错误:在null上调用成员函数get()
如何通过测试登录用户,并使其在同一测试中保持多个页面
谢谢这个怎么样
class AdminTest extends TestCase
{
use DatabaseMigrations;
public function setUp()
{
parent::setUp();
$this->admin = factory(User::class)->create([
'is_admin' => true,
]);
// Impersonate as the currently created admin user
$this->be($this->admin);
}
public function test_admin_can_create_clients()
{
// You do not need to use actingAs() if you're already using be()
$this->get('/clients')->assertStatus(200);
}
}
我想这应该可以正常工作。用
be
模拟用户已经尝试过了。请参阅更新@ThamilanI不知道它是否有用,但在我自己的应用程序中,我使用$this->actingAs($user)->get(…)
,因此删除开始会话
并删除/web/
参数。