我现在正在测试我的控制器-只需在PostController中的store方法中,我就可以使用以下命令设置帖子的作者ID:
$post->setAuthorId($this->getUser()->getId());
我已经按照Simulate login
中的说明设置了客户端并登录以进行测试在我的PostControllerTest-testStorePost中,我有以下内容:
public function testStorePost()
{
$this->logIn();
$crawler = $this->client->request('GET', '/post/create');
$form = $crawler->selectButton('Save')->form();
$form->setValues(array(
'post[title]' => 'symfonyfan',
'post[body]' => 'some random test',
));
$crawler = $this->client->submit($form);
$this->assertSame(Response::HTTP_OK, $this->client->getResponse()->getStatusCode());
}
然后在运行测试时出现以下错误:
错误:在null上调用成员函数getId()
我现在应该做什么?我了解在Controller中我无法获取用户ID,因为没有用户。测试时如何向我的方法提供此类数据?