测试中的 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););
}
希望对您有所帮助
我正在尝试在我的功能测试中实现生成的路由。我希望它们是动态生成的,最好是按名称生成,但我找不到正确的方法。请指点我
一个简单的测试:
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););
}
希望对您有所帮助