Laravel-测试如何修复错误Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException

问题描述

我无法运行此测试方法,我想做的是只有管理员用户才能进入面板,如果该用户只是一个用户,则它必须收到状态302,但它收到404,

如果我运行PHP artisan route:list,我可以看到该路线

这是我的测试方法

/** @test */
   public function usuario_no_adminisTrador_no_puede_entrar_al_panel()
   {

           $role = factory(Role::class)->create(['name' => 'usuario']);
           $user = factory(User::class)->create();
           $user->roles()->sync($role);

           $this->actingAs($user);

           $this->withoutExceptionHandling();
           $this->get('/panel')->assertStatus(302);

   }

这是我的web.PHP文件

Route::group(['middleware' => 'role:usuario','middleware' => 'role:adminisTrador'],function() {
  Route::get('/panel','PanelController@index')->name('panel.index');
});

这是错误

Image of error when running php artisan test

解决方法

您在路由组定义中有两个middleware键。您需要将它们组合在一起,否则最后一个将覆盖所有先前设置的参数:

Route::group(['middleware' => ['role:usuario','role:administrador']],function() {
    Route::get('/panel','PanelController@index')->name('panel.index');
});