Я пытаюсь протестировать свое мультиязычное приложение. У меня есть четыре языка формы в моем заявлении. Я пытаюсь проверить indexAction (), когда сканер просматривает мою страницу, я хочу проверить количество заголовков, но заголовок может быть, например, на английском или японском. Когда я передаю ключ перевода, он не работает. Вот код:
$this->assertEquals(1, $crawler->filter('html:contains("logo_text")')->count());
Итак, вопрос в том, могу ли я передать ключ перевода в тесты? Или мне нужно как-то значение жесткого кода?
Вы можете попробовать это решение от Флориана Эккерсторфера:
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
В блоге также описана возможность использования Компиляция проходит. Гораздо более сложное решение, поэтому вы можете начать с приведенного выше.
Других решений пока нет …