Я из Германии и на работе мы используем старую версию Symfony2 (2.1). Я написал фильтр ветви с названием «GermanDateExtension».Symfony2 - Местность в модульных тестах
public function getGermanDateFilter($date, $format)
{
setlocale(LC_TIME, 'de_DE.utf8');
return strftime($format, $date);
}
Locale устанавливается через setlocale(), и отформатированная дата будет возвращена. Я также написал некоторые модульные тесты для этого фильтра.
public function testGermanDay()
{
$germanDate = new GermanDateExtension();
$result = $germanDate->getGermanDateFilter($this->testDate, '%A');
$this->assertEquals('Mittwoch', $result);
}
Стандарт по умолчанию должен быть «de» (в параметрах.ini). Код работает без проблем на моем веб-сайте, но тесты терпят неудачу.
Теперь вот в чем проблема: Если я выполняю тест, то по умолчанию локаль «en» и вызов setlocale() игнорируется. Поэтому вместо «Mittwoch» возвращается английское название «среда».
У вас есть идеи, как это исправить?
Заранее благодарен!