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