Интеграционный тест Laravel Mockery

Я немного не понимаю, как выполнить интеграционный тест с помощью насмешек.

У меня есть следующие классы: TeacherController TeacherManager - Интерфейс TeacherManagerImpl - Реализация

Когда дело доходит до насмешек / PHPUnit, как мне вызвать метод из моего интерфейса? Он говорит, что интерфейс не может быть создан. Я знаю, что это невозможно, но как я могу внедрить его в тестовый класс или мне просто нужно сделать что-то новое в реализации. Делать новую реализацию просто не кажется мне правильным.


person Trevor    schedule 04.09.2013    source источник


Ответы (1)


Спасибо Киндари в IRC-чате Laravel. В методе настройки Test просто привяжите интерфейс к реализации, а затем установите закрытую переменную-член с помощью App::make. Смотри ниже.

App::bind('FooInterface', 'FooImplementation'); 
$foo = App::make('FooInterface');

также app() является ярлыком для App::make

person Trevor    schedule 15.09.2013