Я пытаюсь немного больше понять тесты и насмешки с Laravel. У меня есть настройка шаблона репозитория, которую используют мои пользователи контроллера. Я хочу протестировать свой основной getAllUsers()
метод:
public function test_get_all_users_method()
{
$repo = Mockery::mock('Acme\Repositories\User\UserRepository');
$repo->shouldReceive('all')->once()->andReturn('foo');
$controller = new Acme\Controllers\Api\UserController($repo);
$response = $controller->getComponents();
$this->assertEquals('foo', $response);
}
Насколько я понимаю, я издеваюсь над своим UserRepository и ожидаю, что у моего UserRepository будет хит метода all()
. Это возвращает некоторые фиктивные данные, и я ожидаю увидеть это в своем ответе.
Так что работает нормально. Метод all()
существует в моей реализации репозитория Eloquent. Однако, если я удалю метод all()
, тест все равно пройдет... С чего бы это? Конечно, тест должен провалиться.
Если это нормально, я изо всех сил пытаюсь понять, почему я должен тестировать свой контроллер таким образом, поскольку я могу передать ему любое старое имя метода, даже если оно существует или нет.
Ваше здоровье