使用会话测试应用程序

时间:2013-01-11 13:00:45

标签: php laravel

我正在使用即将推出的Laravel 4框架构建应用程序。我想为它编写单元测试。该应用程序使用会话。因此,我必须重新创建用户状态才能正确测试所有内容。

这是我想做的事情:

User::login($user); // updates the session
$crawler = $this->client->request('GET', 'http://myapp.dev/');
$this->assertTrue($this->client->getResponse()->isOk());
$this->assertCount(1, $crawler->filter("#logout-button"));

但是,$this->client->request会创建一个新请求,因此会话不会传播。

会话可在测试中使用。但是当你使用$ this-> client-> request('GET','something')时,该请求的会话就不再存在了,因为它使用的是数组驱动程序。我可以尝试使用文件驱动程序,但是如何向请求发送自定义会话ID?

我该如何解决这个问题?我可以通过假cookie传递会话ID吗?或以某种方式传递会话对象?

1 个答案:

答案 0 :(得分:0)

使用$this->be($user)代替Auth::login。请参阅此处的早期L4文档:https://github.com/laravel/docs/blob/master/testing.md