Как настроить параметры сервиса Symfony 5 при функциональном тестировании? - PullRequest
1 голос
/ 23 февраля 2020

Один из моих тестируемых маршрутов использует Сервис, и для этого Сервиса установлен параметр в services.yml.

В рабочем режиме все работает как положено, но я хотел бы изменить значение $my_arg во время выполнения тестов.

Как я могу это сделать? Как установить значение служебного параметра Symfony 5 во время функционального теста?

Это выдержка из моей конфигурации services.yml:

parameters:
    app.my_param: 'foo'

services:
    ...
    App\Service\MyService:
        arguments:
            $my_arg: '%app.my_param%'

1 Ответ

0 голосов
/ 23 февраля 2020

Если значение зависит от среды , я бы использовал переменную среды для ее хранения.

Вы даже можете установить значение по умолчанию, если вам нужно только переопределить его в определенных c средах.

parameters:
    env(APP_MY_PARAM): 'foo'
    app.my_param: '%env(APP_MY_PARAM)%'

services:
    ...
    App\Service\MyService:
        arguments:
            $my_arg: '%app.my_param%'

Теперь вам нужно только установить переменную среды APP_MY_PARAM, чтобы изменить поведение приложения.

Самый простой способ выполнить sh это для теста, это создание .env.test файла:

#.env.test
APP_MY_PARAM=bar

При этом $my_arg будет установлен как "bar" во время тестирования и как "foo" по умолчанию, если вы этого не сделаете установите переменную окружения на что-нибудь еще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...