Mar*_*tyn 11 php phpunit laravel
我正在做以下测试对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');
}
Run Code Online (Sandbox Code Playgroud)
但是,我告诉我重定向不匹配.此外,我可以看到它根本不是商店行动方法.我想知道它将采用什么动作方法,以及它为什么不去存储方法(如果我查看路径:列表我可以看到有一个POST问题/路由应该转到questions.store;这个也适用于浏览器,但不适用于我的测试).此外,我正在为此资源正确编写呼叫吗?我在这里添加了令牌,因为它正在抛出异常,在某些测试中我会让令牌检查通过.
小智 5
你可以试试这个:
public function testStoreAction()
{
Session::start();
$response = $this->call('POST', 'questions', array(
'_token' => csrf_token(),
));
$this->assertEquals(302, $response->getStatusCode());
$this->assertRedirectedTo('questions');
}
Run Code Online (Sandbox Code Playgroud)
小智 2
测试路由的最推荐方法是检查200
响应。post
当您有多个测试时(例如您一次检查所有路线),这非常有帮助。
为此,只需使用:
public function testStoreAction()
{
$response = $this->call('POST', 'questions', array(
'_token' => csrf_token(),
));
$this->assertEquals(200, $response->getStatusCode());
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14283 次 |
最近记录: |