为什么我会收到错误Failed声明响应对象(...)是类的实例" RedirectResponse"?

时间:2015-01-03 23:23:30

标签: php laravel-4 phpunit

问题

PHPUnit断言$this->assertRedirectedToAction('CatsController@index')失败。

路线

Route::get('/','CatsController@index');

测试用例

class CatTest extends TestCase {

    /**
     * A basic functional test example.
     *
     * @return void
     */
    public function testHomePageRedirection()
    {
        $this->call('GET','/');
        $this->assertRedirectedToAction('CatsController@index');

    }

错误

Failed asserting that Illuminate\Http\Response Object (...) is an instance of class "Illuminate\Http\RedirectResponse".

/Applications/MAMP/htdocs/crudapp/vendor/laravel/framework/src/Illuminate/Foundation/Testing/AssertionsTrait.php:110
/Applications/MAMP/htdocs/crudapp/vendor/laravel/framework/src/Illuminate/Foundation/Testing/AssertionsTrait.php:140
/Applications/MAMP/htdocs/crudapp/app/tests/CatTest.php:13

有人可以帮我确定我遇到此错误的原因吗?

1 个答案:

答案 0 :(得分:0)

因为您不是redirectedCatsController@index - 这就是您所在的页面。

Route::get('/','CatsController@index')
Route::get('/redirect', function () {
     return Redirect::action('CatsController@index');
});

public function testHomePageOk()
{
    $this->call('GET','/');
    $this->assertResponseOk(); 
}


public function testRedirectToHomePage()
{
    $this->call('GET','/redirect');
    $this->assertRedirectedToAction('CatsController@index');
}