У меня проблема с моим тестом PHPUnit на Symfony2. Чтобы подключиться к моему приложению, я использую веб-службу, поэтому создал UserProvider. В моей функции loadUserByUsername
Я использую параметры Symfony2, сохраненные в app/config/parameters.yml
. Поскольку я не в контроллере нужно использовать глобальную переменную $kernel
и получить мои аргументы, как это:Symfony2 & PHPUnit - Access getContainer()
global $kernel;
$url = $kernel->getContainer()-getParameter('myparam');
Когда я использую мое приложение, это работает, но когда я пишу тест, как это:
$crawler = $client->request('GET', '/login');
$form = $crawler->selectButton('submit')->form();
$form['_username'] = $username;
$form['_password'] = $pass;
и выполнить PHPUnit я получаю эту ошибку:
Фатальная ошибка: Вызов функции члена getContainer()
Как я могу получить доступ к параметрам Symfony2 или использовать getContainer
при выполнении PHPUnit?
благодарственное redbirdo, это работает!я передаю @service_container моей службе, и она передана в PHPUnit – Remi
@Remi, тогда вы должны были принять мой ответ, а не redbirdo's XD. Он вообще не упоминает '@ service_container'. Кстати, как я ответил в комментарии к моему ответу, что это не лучшая практика, так что вам, вероятно, придется немного реорганизовать ваш сервис :) –
@Remi - действительно лучше передать конкретные параметры/услуги вашему сервису, потому что это делает интерфейс/зависимости явные. – redbirdo