Прежде всего, обратите внимание на Accessing the Container в документации Symfony тестирования.
Ответы могут быть выполнены, но вам не нужно специально загружать ядро, если вы расширяете класс WebTestCase, так как он автоматически загружается при создании вашего клиента. Я вижу, что вы используете $this->client
, что означает, что вы определили глобальный клиент для класса в своей функции setUp()
. Если это так, вам просто нужно сделать:
$container = $this->client->getContainer();
$url = $container->get('router')->generate('name_route', array('parameter' => ' '));
Если вы не определили $this->client
где-нибудь, то вам нужно изменить выше
// if your class extended Symfony's standard WebTestCase, this would
// instead be $client = static::clientClient();
$client = static::makeClient();
$container = $this->client->getContainer();
$url = $container->get('router')->generate('name_route', array('parameter' => ' '));
Обратите внимание, что в документации государств Symfony:
It's highly recommended that a functional test only tests the Response. But under certain very rare circumstances, you might want to access some internal objects to write assertions. In such cases, you can access the Dependency Injection Container:
Так по Symfony вы не должны действительно быть доступ к контейнеру генерировать свой маршрут, а если посмотреть на все их другие примеры они предварительно фер вас позвонить по пути маршрута, а не получить его по имени, поэтому в вашем случае это будет:
$this->client->request('GET', '/path/for/your/route',
array(),
array(),
array(
'HTTP_parameter_Header' => 'parameterHeader',
)
);
Ваше сообщение об ошибке означает, что $ это не объект, который кажется странным. Вы уверены, что ошибка исходит из вашего опубликованного кода? Я не использовал пакет Лии. Как несколько других людей предположили, что я подозреваю, что вам нужно загрузить ядро, но я не уверен. Лийп-пакет может позаботиться об этом. – Cerad
Просто FYI у вас также есть орфографическая ошибка, '' paramterHeader'' должен быть '' parameterHeader'' –