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

Я немного заблудился о том, как выполнить интеграционный тест с использованием насмешек.

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

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

1 ответ

Решение

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

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

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

Другие вопросы по тегам