私はコントローラーのアクションをlaravelでmockeryでテストしようとしています。私はすでにこのチュートリアルをここで読んでいます:
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をテストしたいと思います。