使用Symfony2 WebTestCase,我有以下测试:
$client->request('GET', '/');
$this->assertTrue($client->getResponse() instanceof RedirectResponse);
$crawler = $client->followRedirect();
我想在重定向结束/login
之后测试新网址,但我找不到访问新网址的方法。
答案 0 :(得分:33)
您可以使用$client->getResponse()->headers->get('location')
获取当前网址,并使用assertRegExp()
以 / login 结束。
$this->assertRegExp('/\/login$/', $client->getResponse()->headers->get('location'));
答案 1 :(得分:22)
刚试过Samy Dindane解决方案但没有成功(可能会从2.0改变)
无论如何,在2.1中,我能够通过以下方式检索测试中的当前URL:
$client->getRequest()->getUri()
然后,您可以使用assertRegexp()。
答案 2 :(得分:13)
你也可以这样做(Symfony 2.3)
$client->getHistory()->current()->getUri()
答案 3 :(得分:6)
您可以在$client->getResponse()->getTargetUrl()
之前添加此行$client->followRedirect()
,以获取您将被重定向的网址
答案 4 :(得分:0)
Test redirect from /sample to /target (can be absolute url as well)
&a==&b