测试中的 Symfony2 UrlGenerator

Symfony2 UrlGenerator in tests

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

一个简单的测试:

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

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

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

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

例如:

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

       }

希望对您有所帮助