【问题标题】:Is it possible to change locale in Symfony2 unit tests?是否可以在 Symfony2 单元测试中更改语言环境?
【发布时间】:2014-07-18 14:29:30
【问题描述】:

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

当我想编写一些关于该语言环境切换器的单元测试时,我的问题就出现了。

即使我的测试客户端被重定向(这意味着语言环境切换器被调用),语言环境似乎也没有改变。

首先,是否可以在单元测试中更改语言环境? 其次,由于在测试方法中无法获取 Request 对象,如何获取当前语言环境?

谢谢

【问题讨论】:

    标签: php unit-testing symfony locale


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2015-03-24
      • 2016-03-25
      • 2016-01-07
      • 1970-01-01
      • 1970-01-01
      • 2015-02-04
      • 2018-04-19
      • 2012-02-06
      • 2011-12-01
      相关资源
      最近更新 更多