【问题标题】:Functional testing MissingMandatoryParametersException if locale in my route如果我的路线中的语言环境,功能测试 MissingMandatoryParametersException
【发布时间】:2015-11-07 22:33:49
【问题描述】:

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

异常

'Symfony\Component\Routing\Exception\MissingMandatoryParametersException' 带有消息'缺少一些强制性参数(“_locale”) 在...中生成路由“some_route”的 URL

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(....

这是我的 routing.yml

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

你知道我该如何解决吗?

【问题讨论】:

    标签: php symfony phpunit functional-testing


    【解决方案1】:

    你知道我该如何解决吗?

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

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

    【讨论】:

    • 调用Router#generate()的方法是服务的方法
    猜你喜欢
    • 1970-01-01
    • 2011-08-13
    • 1970-01-01
    • 2015-02-03
    • 1970-01-01
    • 1970-01-01
    • 2015-03-24
    • 1970-01-01
    • 2012-04-13
    相关资源
    最近更新 更多