Php Laravel 5.4测试-无法登录

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,

我正在尝试以用户身份登录Laravel测试,代码如下:

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/
参数。