【发布时间】:2015-05-01 15:46:23
【问题描述】:
我正在执行以下操作来测试对 Laravel 的 POST 调用。根据我的路线,我希望对问题的 POST 将作为存储操作方法进行调度。这适用于浏览器。
我的测试:
public function setUp()
{
parent::setUp();
Session::start();
}
public function testStoreAction()
{
$response = $this->call('POST', 'questions', array(
'_token' => csrf_token(),
));
$this->assertRedirectedTo('questions');
}
但是,我告诉我重定向不匹配。另外,我可以看到它根本不会使用 store 操作方法。我想知道它要使用什么操作方法,以及为什么它不使用 store 方法(如果我查看 route:list 我可以看到有一个 POST questions/route 应该转到 questions.store;这个也适用于浏览器,但不适用于我的测试)。另外,我是否为此资源正确编写了调用?我在这里添加了令牌,因为它应该抛出异常,在某些测试中我会让令牌检查通过。
【问题讨论】:
-
能否提供实际的错误描述,谢谢
-
您的 POST 参数不太可能只是 csrf 令牌。可能在您的控制器中,您有某种验证,使请求重定向回之前的位置(302 响应代码)。您可以通过使用
dd(Session::get('errors'))调试会话来检查是否是这种情况