因此,我正在使用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,而不是错误。 谢谢您的宝贵时间。