Я пытаюсь настроить простейшие тесты в своем контроллере, но, как и в случае с большинством вещей Laravel, нет достойных руководств, демонстрирующих простые вещи.
Я могу запустить простой тест (в файле UserControllerTest), например:
public function testIndex()
{
$this->call('GET', 'users');
$this->assertViewHas('users');
}
Это вызывает маршрут / users и передает в массив users.
Я хочу сделать то же самое с Mockery, но как?
Если я попробую это:
public function testIndex()
{
$this->mock->shouldReceive('users')->once();
$this->call('GET', 'users');
}
Я получаю сообщение об ошибке: «Статический метод Mockery_0_users :: all не существует для этого фиктивного объекта.
Почему нет? Я издеваюсь над пользователем, который расширяет Ardent и, в свою очередь, расширяет Eloquent. Почему :: all не существует для насмешки?
Кстати, это функции настройки для Mockery:
public function setUp()
{
parent::setUp();
$this->mock = $this->mock('User');
}
public function mock($class)
{
$mock = Mockery::mock($class);
$this->app->instance($class, $mock);
return $mock;
}