我有一个带有文本字段和按钮的页面。填写文本字段并按下按钮后,控制器将连接到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
文件中设置) 。这意味着正在使用REAL API
而不是我的FAKE_API
。
如何强制PhpBrowser测试使用我的.env.test
?可能吗
您不能那样做。
PhpBrowser通过HTTP与被测系统通信,因此无法设置系统的环境变量。
您的选择是: