功能测试 MissingMandatoryParametersException 如果我的路线中的语言环境

Functional testing MissingMandatoryParametersException if locale in my route

我通过 phpunit 从特定测试中按其名称调用我的 API 的方法,但出现此错误:

exception

'Symfony\Component\Routing\Exception\MissingMandatoryParametersException' with message 'Some mandatory parameters are missing ("_locale") to generate a URL for route "some_route" in ...

src\Symfony\Component\Routing\Generator\UrlGenerator.php:155

当我从我的测试中调用的方法调用 generate of Router

考虑到我正在使用此技术 http://symfony.com/doc/current/cookbook/testing/simulating_authentication.html 进行身份验证但没有 Client 因为我不需要请求 URL。我刚刚 $kernel = static::createKernel(....

And here is my routing.yml

some_route:
   pattern: /{_locale}/id
   default: { _controller: myBundle:myController:myAction }

你知道我该如何解决吗?

Do you know how do I fix it ?

在使用 Router#generate().

生成路由时,为 _locale 参数传递一个值(它在您的路由中并且没有默认值)

顺便说一句,请注意,如果您在测试中使用 Router#generate() 来生成要访问的路由,这不是一个好的做法,请改用静态字符串。