Laravel Backpack中$this->actingAs在PHPUnit测试中失效问题
解决Backpack for Laravel中actingAs与admin中间件的测试兼容问题
你的测试返回302重定向,核心原因是创建的用户没有关联admin角色,Backpack的admin中间件检测到用户无权限,因此触发重定向。
你的代码里只创建了User和Role,但缺少用户与角色的关联步骤。修正后的测试代码如下:
$user = User::factory()->create(); $role = Role::factory()->create([ 'name' => User::ROLE_ADMIN ]); // 关联用户与admin角色 $user->roles()->attach($role); $response = $this->actingAs($user)->get(route('admin.homework.detail')); $response->assertStatus(200);
额外检查点:
- 确保你的User模型引入了Backpack的
HasRolesTrait(通常是use Backpack\PermissionManager\Traits\HasRoles;) - 确认admin中间件的逻辑是正确校验用户角色(比如检查用户是否拥有
admin角色)
内容的提问来源于stack exchange,提问作者zobay
相关产品推荐
相关产品推荐

