symfony 2 - 请求跟随重定向
symfony 2 - request follow redirect
我正在编写一些测试来检查站点的所有页面是否正常。
相关的基础代码是这样的:
function pagesUpTest() {
static::bootKernel($options);
$client = static::$kernel->getContainer()->get('test.client');
$client->setServerParameters($server);
$crawler = $client->request('GET', $url);
$this->assertTrue($client->getResponse()->isSuccessful());
}
正常页面一切正常。
仍然有一些页面进行重定向(一些旧文章重定向到更新更好的版本 - 是动态的,更多可以稍后出现,因此不能单独处理)。
现在我刚刚添加了一个条件来跳过断言是否在重定向上成功:
function pagesUpTest() {
static::bootKernel($options);
$client = static::$kernel->getContainer()->get('test.client');
$client->setServerParameters($server);
$crawler = $client->request('GET', $url);
if (!$client->getResponse()->isRedirection()) {
$this->assertTrue($client->getResponse()->isSuccessful());
}
}
仍然......这是假设重定向后一切正常,因此测试与这些情况的相关性降低。我想跟随重定向,并检查该页面是否成功。
有什么方法可以做到这一点?
在重定向的情况下,您可以简单地按照重定向进行操作,如下所示:
if ($client->getResponse()->isRedirection()) {
$client->followRedirect();
}
$this->assertTrue($client->getResponse()->isSuccessful());
似乎可以告诉客户端使用以下方法自行遵循重定向:
$client->followRedirects(true);
$client->setMaxRedirects(10);
所以客户端自己跟随重定向(但我从来没有尝试过:))
希望对您有所帮助
我正在编写一些测试来检查站点的所有页面是否正常。
相关的基础代码是这样的:
function pagesUpTest() {
static::bootKernel($options);
$client = static::$kernel->getContainer()->get('test.client');
$client->setServerParameters($server);
$crawler = $client->request('GET', $url);
$this->assertTrue($client->getResponse()->isSuccessful());
}
正常页面一切正常。
仍然有一些页面进行重定向(一些旧文章重定向到更新更好的版本 - 是动态的,更多可以稍后出现,因此不能单独处理)。
现在我刚刚添加了一个条件来跳过断言是否在重定向上成功:
function pagesUpTest() {
static::bootKernel($options);
$client = static::$kernel->getContainer()->get('test.client');
$client->setServerParameters($server);
$crawler = $client->request('GET', $url);
if (!$client->getResponse()->isRedirection()) {
$this->assertTrue($client->getResponse()->isSuccessful());
}
}
仍然......这是假设重定向后一切正常,因此测试与这些情况的相关性降低。我想跟随重定向,并检查该页面是否成功。
有什么方法可以做到这一点?
在重定向的情况下,您可以简单地按照重定向进行操作,如下所示:
if ($client->getResponse()->isRedirection()) {
$client->followRedirect();
}
$this->assertTrue($client->getResponse()->isSuccessful());
似乎可以告诉客户端使用以下方法自行遵循重定向:
$client->followRedirects(true);
$client->setMaxRedirects(10);
所以客户端自己跟随重定向(但我从来没有尝试过:))
希望对您有所帮助