【问题标题】:Symfony2 UrlGenerator in tests测试中的 Symfony2 UrlGenerator
【发布时间】:2015-03-26 08:25:38
【问题描述】:

我正在尝试在我的功能测试中实现生成的路由。我希望它们是动态生成的,最好是按名称生成,但我找不到正确的方法。请指点我。

一个简单的测试:

  public function testIndex()
    {
        // I have service container
        $container = $this->client->getContainer();
        $crawler = $client->request('GET', helper_function("route_name", $params));
        $heading = $crawler->filter('h1')->eq(0)->text();
        $this->assertEquals('Application list', $heading);
    }

helper_function() 应该是什么?

【问题讨论】:

    标签: php symfony phpunit symfony-2.3


    【解决方案1】:

    由于您可以访问服务容器,您可以获得router(默认返回Symfony\Component\Routing)服务并在其上调用generate方法。

    $route = $container->get('router')->generate($routeName, $params);
    

    【讨论】:

      【解决方案2】:

      在 WebTestCase 类的设置中,您可以获取路由器组件的实例,然后照常使用它。

      例如:

       class AcmeDemoTestCase extends WebTestCase
      
      
          protected $router;
      
      
              protected function setUp()
          {
              ........
              $this->client = static::createClient();
              $this->router = $this->client->getContainer()->get('router');
               .....
           }
      
      
               public function testIndex()
              {
              $crawler = $this->client->request('GET', $this->router->generate($routeName, $params););
      
             }
      

      希望有帮助

      【讨论】:

        猜你喜欢
        • 2012-11-27
        • 2014-10-28
        • 2014-07-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-18
        • 1970-01-01
        相关资源
        最近更新 更多