功能测试MissingMandatoryParametersException如果区域设置在我的路由


Functional testing MissingMandatoryParametersException if locale in my route

我通过phpunit的特定测试通过其名称调用我的API的方法,我有这个错误:

异常

的Symfony '路由'异常' '组件MissingMandatoryParametersException"消息'缺少一些强制参数("_locale")为路由"some_route"生成一个URL

'路由'发电机' src ' Symfony '组件UrlGenerator.php: 155

当我从我的测试调用generateRouter的方法

假设我使用这种技术http://symfony.com/doc/current/cookbook/testing/simulating_authentication.html进行身份验证,但没有Client,因为我不需要请求url。这里是$kernel = static::createKernel(....

这是我的routing。yml

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

你知道我怎么修吗?

你知道我怎么修理它吗?

在使用Router#generate()生成路由时,传递_locale参数的值(该参数在您的路由中并且没有默认值)。

顺便说一句,请注意,如果您在测试中使用Router#generate()来生成访问路由,则不认为这是一种良好的实践,请使用静态字符串代替。