我试图在功能测试中实现生成的路由。我希望它们是动态生成的,最好是按名称生成,但我找不到合适的方法。请点我。
一个简单的测试:
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()
应该是什么?
答案 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););
}
希望这个帮助