Laravel测试-UnauthorizedException:用户的角色不正确

时间:2018-11-23 13:06:51

标签: php laravel spatie laravel-testing

因此,我正在使用laravel测试,并且正在进行访问用户页面的测试,在该页面上可以查看所有用户并进行编辑。在UsersController.php中,我规定只有管理员才能访问用户页面。我从spatie插件https://github.com/spatie/laravel-permission中使用的角色和权限。我进行了测试,以检查一个简单的用户是否可以访问该用户的页面,这是UserTest.php

中的代码
/** @test */
public function user_try_to_access_users_page()
{
    $user = factory(User::class)->create();
    $user->assignRole('user');
    $this->actingAs($user);

    $response = $this->get('/users');
    $response->assertStatus(403);
}

这是UsersController.php中的代码,仅允许管理员访问它。

public function index()
{
    $testUser = Auth::user();

    if ($testUser->hasRole('admin')) 
    {   
        $users = User::all();

        return view('users.index', ['users' => $users]);
    }

    return response(view('errors.403'), 403);
}

现在,当我尝试运行测试时,它给了我错误

  

Tests \ Feature \ UserTest :: user_try_to_access_users_page       Spatie \ Permission \ Exceptions \ UnauthorizedException:用户没有正确的角色。

$response = $this->get('/users');行中。

这很好,因为不允许用户访问页面,但应该给出代码403,而不是错误。 谢谢您的宝贵时间。

0 个答案:

没有答案