【发布时间】:2014-02-25 12:57:13
【问题描述】:
根据Laravel docs,我应该可以通过Object::shouldReceive() 模拟外观,但是当我这样做时,我无法重新声明该方法。当我在浏览器中查看该视图时,它可以正常工作,我只需要弄清楚如何正确测试它。
Cannot redeclare Mockery_1_Facades_MyService::shouldReceive() in /path-to-project/vendor/mockery/mockery/library/Mockery/Loader/EvalLoader.php(16) : eval()'d code on line 672
这是我的测试:
public function testSend()
{
MessageService::shouldReceive('find')->once()->with(1);
$this->call('GET', '/message/1/send');
$this->assertRedirectedToRoute('message.index');
}
这是我的控制器:
public function send($id)
{
$message = MessageService::find($id);
$this->messageService->sendBroadcast($message);
return Redirect::route('message.index')
->with('message', "Sending message: {$message->name}, stand by...");
}
【问题讨论】:
标签: php unit-testing laravel facade