gpt4 book ai didi

session - Controller 中的 Laravel 4 测试 session

转载 作者:行者123 更新时间:2023-12-04 22:46:50 24 4
gpt4 key购买 nike

我在 Laravel 4 中测试 Controller 时遇到问题。

我有下一个代码:

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'));
}

我想测试 Controller 在 View 中传递的数据是否正确:
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 类 ,因为框架不允许 - 当我尝试这样做时会出现很多错误。

最佳答案

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

从 v4.1.23 开始,你也可以做 $this->session($arrayOfSessionData) ,它会为您处理 session 的开始。

关于session - Controller 中的 Laravel 4 测试 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21985636/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com