我正在尝试使用Mockery
测试我的服务。我已将路由参数{user}
绑定到我的服务:
$repo = 'Services\\UserService';
$router->bind('user', function($id, $route) use($repo) {
return $this->app->make($repo)->get($id);
});
当我进行第一次测试时,它会成功。
$mocked = Mockery::mock('UserService');
\App::instance('UserService', $mocked);
$mocked->shouldReceive('create')
->once()
->andReturn($user);
当我的下一次测试运行时,它失败
$mocked = Mockery::mock('UserService');
\App::instance('UserService', $mocked);
$mocked->shouldReceive('update')
->once()
->andReturn('1');
转发router->bind
方法
dump(get_class($this->app->make($repo));
我第一次获得Services\UserService
但第二次获得Mockery_0_Services_UserService
然后出现此错误:
testing.ERROR: exception 'BadMethodCallException' with message
'Method Mockery_0_Services_UserService::get() does not exist on this mock object
我认为它与App::instance
方法有关,但我不确定。
这可能是什么问题?