Функциональное тестирование мультиязычного приложения Symfony2

Я пытаюсь протестировать свое мультиязычное приложение. У меня есть четыре языка формы в моем заявлении. Я пытаюсь проверить indexAction (), когда сканер просматривает мою страницу, я хочу проверить количество заголовков, но заголовок может быть, например, на английском или японском. Когда я передаю ключ перевода, он не работает. Вот код:

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

Итак, вопрос в том, могу ли я передать ключ перевода в тесты? Или мне нужно как-то значение жесткого кода?

3

Решение

Вы можете попробовать это решение от Флориана Эккерсторфера:
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

В блоге также описана возможность использования Компиляция проходит. Гораздо более сложное решение, поэтому вы можете начать с приведенного выше.

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]