Я пытаюсь проверить мои действия с контроллером в laravel с издевательством. Я уже прочитал этот учебник здесь:Испытание Laravel Controller с помощью 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();
...
I Я пытаюсь работать с Mockery как макет. Мой вопрос заключается в том, как издеваться над вызовом типа $ this-> sentry-> getUserProvider() (Cartalyst Sentry - это расширенный пакет авторизации). Для того, чтобы дразнить пользователя Модель я пишу:
$this->user = Mockery::mock('Eloquent', 'User');
Любая идея, как издеваются над Userprovider или я должен справиться с этим по-другому? Я хочу проверить свой UserController, если я получаю детали пользователя в зависимости от идентификатора.
Вы издеваетесь над часовым, и он возвращает насмешливого пользователя. '$ sentryMock-> shouldReceive ('getUserProvider') -> times (1) -> andReturn ($ userProviderMock);' – Mike