Я немного покопался и не смог найти ни одного решения, позволяющего сделать следующее:
- Макетируйте некоторые службы в вашем приложении PHP
- Загрузка экземпляра селена
- Поручите сделать запрос к вашему PHP-приложению (/ w mocked services)
Очевидно, что это не работает, потому что какая бы среда тестирования вы не использовали для имитации сервисов, она запускает свой собственный процесс PHP, а отдельный запускается, когда Selenium делает HTTP-запрос, и у каждого процесса есть собственный экземпляр контейнера.
Является ли причиной, по которой я не нашел ничего, что могло бы сделать это, просто потому, что вы никогда не должны этого делать? Я могу себе представить, что при правильном разделении вещей эта функциональность никогда не понадобится, поскольку поведение UI / javascript действительно должно быть отделено от бизнес-логики на стороне сервера.
Я полагал, что допустимый вариант использования будет следующим;
Вам необходимо сохранить некоторые данные в сеансе, например, Недавно просмотренные продукты для приложения электронной коммерции, но вы не хотите указывать Selen'у, чтобы он сначала просматривал несколько продуктов, так как это уже рассматривается в другом тесте, а утверждения, которые вы хотите сделать, основаны на выполнении javascript.