Symfony2 UrlGenerator在测试中

时间:2015-03-26 08:25:38

标签: php symfony phpunit symfony-2.3

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

一个简单的测试:

  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()应该是什么?

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:3)

在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););

       }

希望这个帮助