【发布时间】:2019-11-22 04:28:40
【问题描述】:
我要测试的是访问一些路由,但是这些路由在 laratrust 角色中间件中这个角色是 auth 用户必须是超级管理员才能进入这个路由我的问题是我不知道如何写这个功能。
我试图在这样的测试功能中让用户超级管理员
public function Test()
{
$user = factory(User::class)->create();
$user->attachRole('superadministrator');
$this->actingAs($user, 'api');
$response = $this->json('GET', 'api/users');
$response->assertStatus(200);
}
但是即使我检查了这个用户是超级管理员的数据库并且测试给出的结果就像我不是超级管理员一样,它也没有用
这是我的 api 路由:
Route::group(['middleware' => ['auth:api', 'role:superadministrator']],
function()
{
Route::apiResource('users', 'UserController');
}
这是我在 UserController 中的索引函数:
public function index()
{
return Response()->json(User::all, 200);
}
我期望的是一个函数可以访问这个路由,因为这个组中有更多的路由,其余的测试依赖于这个函数
【问题讨论】:
标签: php laravel laravel-passport laravel-middleware