编程语言
首页 > 编程语言> > php-功能测试多语言Symfony2应用

php-功能测试多语言Symfony2应用

作者:互联网

我试图测试我的多语言应用程序.我的应用程序中有四种语言形式.我尝试测试indexAction(),当搜寻器通过我的页面时,我想检查标题的计数,但是标题可以是英语或日语.当我传递翻译密钥时,它不起作用.这是代码:

$this->assertEquals(1, $crawler->filter('html:contains("logo_text")')->count());

所以问题是,我可以将翻译密钥传递到测试中吗?还是我需要某种方式的硬编码值?

解决方法:

您可以通过Florian Eckerstorfer尝试以下解决方案:
https://florian.ec/articles/use-translation-keys-in-symfony2-functional-tests/

基本上,它将创建一个新的翻译器,该翻译器将返回键而不是实际的翻译.

class NoTranslator implements TranslatorInterface
{
  public function trans($id, array $parameters = array(), $domain = null, $locale = null)
  {
    return $id;
  }
...
}

并且比注册它:

# app/config/config_test.yml
parameters:
    translator.class: Acme\DemoBundle\Translation\Translator\NoTranslator

该博客文章还描述了使用Compiler Passes的可能性.一种更为复杂的解决方案,因此您可以从上面的一种开始.

标签:symfony,phpunit,functional-testing,php
来源: https://codeday.me/bug/20191028/1952959.html