是否可以在Symfony2单元测试中更改区域设置?

时间:2014-07-18 14:29:31

标签: php unit-testing symfony locale

我在symfony2中为我的项目创建了一个Locale Switcher,它包含一个路由和一个方法。该方法获取通过GET给出的语言环境,如果它符合约束,则从当前语言环境切换到给定的语言环境。效果很好。

当我想写一些关于Locale Switcher的单元测试时,我的问题出现了。

即使我的测试客户端被重定向(这意味着调用了区域设置切换器),区域设置似乎也没有改变。

首先,是否可以在单元测试中更改区域设置? 其次,我怎样才能获得当前的语言环境,因为我无法在我的测试方法中获取Request对象?

由于

1 个答案:

答案 0 :(得分:2)

好吧,我找到了解决方案。我试图通过创建一个Request对象来访问它,并希望它在测试过程中被填充。但是,在单元测试期间,请求存储在$ client中。

因此,要在单元测试期间访问请求对象,只需执行:

$client = static::createClient();
$client->getRequest()->getLocale();