Сбой WebTestCase после обновления Silex 2

У меня есть следующая базовая девушка для тестов контроллера:

public function createApplication() {
include __DIR__ . '../web/index_dev.php';

$app['debug'] = true;
$app['session.test'] = true;
$app['helper'] = function ($app) {
return new TestHelper($app);
}; // fails!!

return $app;
}

public function setUp() {
parent::setUp();

$this->client = parent::createClient();
}

На Silex 1.3 все работало нормально, но после обновления до v2 на отмеченной строке не получалось. Как только я это прокомментирую — все хорошо.

UPD # 1: я понял, почему это не удается: Cannot override frozen service "helper". Я понимаю значение ошибки, но не могу понять, как ее исправить. Это тестовый пример, поэтому мне нужно заменить его на макет / тестовую реализацию объекта, но не могу ..

0

Решение

Ваша проблема заключается в обновлении контейнера Pimple. Версия Silex 2 для Pimple замораживает сервисы, как только вы их получаете.

Итак, ваша проблема в том, что вы получаете услугу «помощник» ранее в своем коде. Вы должны реорганизовать свой код, чтобы вы не получили сервис при загрузке приложения.

0

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

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

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