2

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

4

0 回答 0