Я пытаюсь провести модульное тестирование некоторого кода Symfony 2.8, который использует шаблон Twig 1.24 (на самом деле я не тестирую шаблон). Шаблон имеет жестко запрограммированную ссылку на app.request
, которого нет в CLI:
{%
set currentPath = path(app.request.attributes.get('_route'),
app.request.attributes.get('_route_params'))
%}
Я пытался внедрить новый объект Request в контейнер из метода теста:
$container->enterScope('request');
$container->set('request', new Request(), 'request');
в соответствии с рекомендациями других Symfony 2 ответов, но я все еще получаю следующую ошибку:
1) InvoiceServiceTest: Should generate a pdf invoice
Test tests\unit\HMRX\CoreBundle\Services\InvoiceServiceTest.php:testShouldGenerateAPdfInvoice
[Twig_Error_Runtime] Impossible to access an attribute ("attributes") on a null variable in "HMRXAppBundle:Invoice:invoice.html.twig" at line 2
Как мне обойти это ограничение и получить объект Request в шаблоне под тестовое задание? Я не думаю, что он должен быть особенно действительным, он просто должен существовать.