Как внедрить объект Request в шаблон Twig из модульного теста CLI? - PullRequest
0 голосов
/ 23 января 2020

Я пытаюсь провести модульное тестирование некоторого кода 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 в шаблоне под тестовое задание? Я не думаю, что он должен быть особенно действительным, он просто должен существовать.

...