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

所以客户端自己跟随重定向(但我从来没有尝试过:))

希望对您有所帮助