测试在Laravel中使用的中间件

时间:2017-03-27 11:14:48

标签: php laravel testing mocking middleware

我在中间件中有一个后期路由,用于检查执行请求的用户是否属于特定角色。我总共有4个角色。而且我发现编写类似的测试很愚蠢:

  • testRole2CanNotDoAction
  • testRole3CanNotDoAction
  • testRole4CanNotDoAction

每次我想测试一些动作。如果我能写出1个测试

,那将是非常好的
  • testMiddlewareWasCalled

确保路线放置在正确的位置。我该怎么做?为了给你上下文,我假设我有以下中间件:

class MustBeRole1
{
    public function handle($request, Closure $next)
    {
        $user = $request->user();
        if ($user && $user->isRole1()) {
            return $next($request);
        }

        abort(403, 'You are not an role1!');
    }
}

以及以下路线:

Route::group(['middleware' => ['isRole1']], function () {
    Route::post('/testAction', ['as' => 'testAction', 'uses' => 'testActionController@test']);
}

我的测试应该如何?

0 个答案:

没有答案