我尝试在嘲笑中测试我的控制器在laravel中的操作。我已阅读本教程在这里:Laravel控制器测试与嘲笑
http://culttt.com/2013/07/15/how-to-structure-testable-controllers-in-laravel-4/
我用DI在我的构造是这样的:
public function __construct(User $user, Cartalyst\Sentry\Sentry $sentry)
{
$this->user = $user;
$this->sentry = $sentry;
...
}
我的问题是在我的控制器下面的代码:
public function getShow($id)
{
try
{
// this is a problem, because I dont know how to tell mockery, to mock the
// Userprovider
$user = $this->sentry->getUserProvider()->findById($id);
// this is not a problem for me
$this->user->all();
...
我我试图与Mockery一起作为一个模拟框架。我的问题是如何模拟像$ this-> sentry-> getUserProvider()(Cartalyst Sentry是一个高级授权包)的调用。嘲笑用户模型我写:
$this->user = Mockery::mock('Eloquent', 'User');
任何想法如何嘲笑Userprovider或者我应该处理这个以另一种方式?我想测试我的UserController,如果我根据id获取用户详细信息。
你嘲笑哨兵,并让它返回一个嘲弄的userProvider。 '$ sentryMock-> shouldReceive('getUserProvider') - > times(1) - > andReturn($ userProviderMock);' – Mike