单元测试期间Laravel csrf验证失败(Laravel 4.1)

时间:2014-02-26 18:46:01

标签: php validation unit-testing laravel laravel-4

我最近根据升级说明从Laravel 4.0升级到4.1,现在单元测试我的csrf令牌时无法验证。我在这里发布了代码:http://laravel.io/bin/7qRx

在浏览网站和提交表单时,csrf验证似乎工作正常,但是当我运行单元测试来验证相同的表单时,csrf验证失败。它在升级到4.1之前有效。

我在这里发现了类似的问题,但也没有列出解决方案。 https://github.com/laravel/laravel/issues/2633

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

我找到了解决方案。你必须添加

会话::开始();

到setup()方法。在调用路由时解决与会话相关的问题。

显然Laravel在调用路由时启动会话,如果尚未创建,则会覆盖先前的会话数据。

根据此处发布的内容找到解决方案: Laravel 4 testing session in controllers

答案 1 :(得分:0)

我的建议是在配置​​文件中设置测试CSRF令牌,并在过滤器中检查它。但那太乱了。