Session 控制器中的Laravel 4测试会话

Session 控制器中的Laravel 4测试会话,session,laravel-4,phpunit,Session,Laravel 4,Phpunit,我在测试Laravel 4中的控制器时遇到问题 我有下一个代码: public function getRemind() { $status = \Session::get('status'); $error = \Session::get('error'); $email = \Session::get('email'); return \View::make('admin/reminds/remind_form', compact('status', 'er

我在测试Laravel 4中的控制器时遇到问题

我有下一个代码:

public function getRemind()
{
    $status = \Session::get('status');
    $error = \Session::get('error');
    $email = \Session::get('email');

    return \View::make('admin/reminds/remind_form', compact('status', 'error', 'email'));
}
我想测试控制器在视图中传递的数据是否正确:

public function testGetRemind()
{
    \Session::set('status', 'status');
    \Session::set('error', 'error');
    \Session::set('email', 'email');
    $response = $this->action('GET', 'Admin\RemindersController@getRemind');
    $this->assertTrue($response->isOk(), 'Get remind action is not ok');
    $this->assertViewHas('status', 'status');
    $this->assertViewHas('error', 'error');
    $this->assertViewHas('email', 'email');
}
但这不起作用

另外,我不能模拟会话类,因为框架不允许它-当我尝试这样做时,会出现很多错误。

在测试开始时调用
Session::start()
。当您在测试中调用URL时,如果会话尚未启动,则会启动该会话,并删除放入其中的任何现有数据

从v4.1.23开始,您还可以执行会话($arrayOfSessionData),它为您处理会话的启动