如何在Laravel测试中禁用选定的中间件

斯蒂芬

因此,在运行时会经常出现来自Authentication和CSRF的错误phpunit

因此,在TestCase中,我们使用:

use WithoutMiddleware;

问题在于,当表单失败时,它通常会返回一条Flash消息和一个旧输入。我们已禁用了所有中间件,因此我们无权访问Input::old('username');或收到Flash消息。

此外,我们对此失败的表单发布的测试返回:

Caused by
exception 'RuntimeException' with message 'Session store not set on request.

有没有一种方法可以启用会话中间件并禁用其他所有功能。

埃尼哈尔

我发现做到这一点的最佳方法不是通过使用WithoutMiddlewaretrait,而是通过修改要禁用的中间件。例如,如果要VerifyCsrfToken在测试中禁用中间件功能,则可以执行以下操作。

在内app/Http/Middleware/VerifyCsrfToken.php,添加一种handle检查APP_ENV测试的方法。

public function handle($request, Closure $next)
{
    if (env('APP_ENV') === 'testing') {
        return $next($request);
    }

    return parent::handle($request, $next);
}

这将覆盖内的handle方法Illuminate\Foundation\Http\Middleware\VerifyCsrfToken,从而完全禁用该功能。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Laravel的中间件中获取Route

来自分类Dev

如何在中间件中传递多个门?(Laravel)

来自分类Dev

如何在 Laravel 中对中间件进行 OR 操作

来自分类Dev

在Laravel中基于环境禁用CSRF中间件

来自分类Dev

在Laravel中基于环境禁用CSRF中间件

来自分类Dev

模拟中间件用于Laravel中的路由测试

来自分类Dev

如何在Laravel中使用auth:api护照中间件添加CORS中间件?

来自分类Dev

如何在需要DI的DNX中测试自定义中间件?

来自分类Dev

Laravel 测试认证中间件

来自分类Dev

如何在路线Laravel 5中使用'OR'中间件

来自分类Dev

如何在中间件Laravel中获取请求的控制器和动作的名称

来自分类Dev

如何在Laravel 5.2中使用OR条件将多个参数传递给中间件

来自分类Dev

如何在Laravel 5.1的中间件中获取路由多数民众赞成

来自分类Dev

如何在 Laravel 中为多种类型的管理员使用中间件?

来自分类Dev

如何测试路由的中间件?

来自分类Dev

如何测试简单的中间件

来自分类Dev

Laravel 5中的中间件如何工作?

来自分类Dev

cookie会话中间件如何在expressjs中工作?

来自分类Dev

如何在scrapy(Python)中间件中实现并发

来自分类Dev

如何在Express中间件中接收ZMQ消息?

来自分类Dev

如何在中间件Slim PHP框架中响应

来自分类Dev

如何在Strapi中间件中达到请求主体?

来自分类Dev

如何在OWIN中删除中间件?

来自分类Dev

如何在连接中向中间件添加模式?

来自分类Dev

中间件中的Laravel依赖注入

来自分类Dev

在中间件Laravel中获取URL

来自分类Dev

在流明中启用中间件(Laravel)

来自分类Dev

在流明中启用中间件(Laravel)

来自分类Dev

boot()中的PHP laravel中间件

Related 相关文章

热门标签

归档