【发布时间】:2018-11-23 10:00:42
【问题描述】:
我正在实现一些要求代码在生产环境中表现不同的逻辑。
我想编写一个测试来断言这确实发生了,但我在模拟环境时遇到了困难。
我已经 seen it suggested 使用 putenv('APP_ENV=production'); 但它似乎不起作用。
我怎样才能使测试通过?
use Illuminate\Support\Facades\App;
use Tests\TestCase;
class EnvTest extends TestCase
{
public function testEnv()
{
// This assertion is fine
$env = App::environment();
$this->assertEquals('testing', $env);
putenv('APP_ENV=production');
// This assertion fails
$env = App::environment();
$this->assertEquals('production', $env);
}
}
结果
时间:160 毫秒,内存:18.00MB
有 1 次失败:
1) EnvTest::testEnv
断言两个字符串相等失败。
--- 预期
+++实际
@@@@
-'生产'
+'测试'
【问题讨论】:
标签: php laravel mocking phpunit environment-variables