我尝试在 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 或者我应该以其他方式处理吗?如果我根据 id 获取用户详细信息,我想测试我的 UserController。