Php Laravel测试-未授权异常:用户没有正确的角色
所以我正在使用laravel测试,我正在为访问用户页面进行测试,在那里我可以看到所有用户并编辑他们。在Php Laravel测试-未授权异常:用户没有正确的角色,php,laravel,spatie,laravel-testing,Php,Laravel,Spatie,Laravel Testing,所以我正在使用laravel测试,我正在为访问用户页面进行测试,在那里我可以看到所有用户并编辑他们。在userscoontroller.php中,我已经声明只有管理员才能访问用户页面。我在Spatiale插件中使用的角色和权限。我做了这个测试来检查一个简单的用户是否可以访问用户的页面,下面是UserTest.php /** @test */ public function user_try_to_access_users_page() { $user = factory(User::cl
userscoontroller.php
中,我已经声明只有管理员才能访问用户页面。我在Spatiale插件中使用的角色和权限。我做了这个测试来检查一个简单的用户是否可以访问用户的页面,下面是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);
}
下面是userscoontroller.php
thas中的代码,它只允许管理员访问
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);
}
现在,当我尝试运行测试时,它会给我错误
测试\功能\用户测试::用户\u尝试\u访问\u用户\u页面
空间\权限\异常\未授权异常:用户没有正确的角色
在这一行中,$response=$this->get('/users')代码>
这很好,因为它不允许用户访问页面,但应该给出代码403,而不是错误。
感谢您抽出时间。检查路由是否正在使用角色中间件。在路由中,我只使用auth中间件来检查用户是否登录,但在userscocontroller.php构造函数中,我声明了$this->middleware(['role:admin']);那可能就行了。从构造函数中删除它,然后再试一次。@aynber好吧,这比我想象的要容易!谢谢你,祝你今天愉快