Интеграционный тест Laravel
Я немного заблудился о том, как выполнить интеграционный тест с использованием насмешек.
У меня есть следующие классы: TeacherController TeacherManager - Интерфейс TeacherManagerImpl - Реализация
Когда речь заходит о mockery / PHPUnit, как мне вызвать метод из моего интерфейса? Это говорит о том, что интерфейс не может быть создан. Я знаю, что это не может, но как я могу внедрить это в тестовый класс, или я должен просто сделать новое в реализации. Делать новое в реализации просто не кажется мне правильным.
1 ответ
Решение
Спасибо Kindari в чат-комнате Laravel IRC. В методе настройки Test просто привяжите интерфейс к реализации, а затем установите переменную закрытого члена, используя App::make. Увидеть ниже.
App::bind('FooInterface', 'FooImplementation');
$foo = App::make('FooInterface');
также app() является ярлыком для App:: make