Я пытаюсь понять тесты и издевательства с Laravel. У меня есть установка шаблона репозитория, которую пользователи моего контроллера. Я хочу, чтобы проверить мой основной getAllUsers()
метод:Mockery «shouldReceive» еще не существует
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()
, тест все равно пройдет ... Почему? Конечно, тест должен потерпеть неудачу.
Если это нормально, я пытаюсь понять, почему я тестировал свой контроллер таким образом, поскольку я мог бы передать в него любое старое имя метода, даже если оно существует или нет.
Приветствия
Право: я пытаюсь добавить тесты к существующей кодовой базе, так было в мышлении " метод X требует, чтобы метод Y функционировал должным образом, поэтому класс с наддувом должен иметь этот метод ». Так что ура, это осуществит! – Alias