У меня есть страница с текстовым полем и кнопкой. После того, как я заполнил текстовое поле и нажал кнопку, мой контроллер подключается к API и получает некоторые данные на основе текста.
Я подготовил FAKE_API
для тестирования. И REAL_API
, и FAKE_API
находятся в служебном контейнере. FAKE_API
имеет приоритет, если для среды установлено значение test
(файл .env.test
). Контроллер получает объект API посредством внедрения зависимости (аргумент конструктора).
Когда я тестирую с использованием PhpBrowser
из Codeception
, среда самого теста устанавливается на test
- это можно проверить с помощью var_dump($_ENV['APP_ENV'])
из теста.
Однако (и это проблема), если я добавлю var_dump($_ENV['APP_ENV'])
к коду контроллера и выполню тот же тест, я вижу, что контроллер фактически использует обычную среду 'dev' (установлена в .env
файл). Это означает, что вместо моего FAKE_API
.
используется REAL API
. Как я могу заставить тесты PhpBrowser использовать мой .env.test
? Это вообще возможно?