zoz*_*ozo 4 php redirect phpunit symfony
我正在编写一些测试来检查站点中的所有页面是否都正常。
相关的基本代码是这样的:
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());
}
Run Code Online (Sandbox Code Playgroud)
正常页面一切正常。
仍然有一些页面进行重定向(一些旧文章将其重定向到较新的和更好的版本-是动态的,以后会出现更多,因此不能分开对待)。
现在,我只是添加了一个条件,以跳过断言在重定向成功是否这样的情况:
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());
}
}
Run Code Online (Sandbox Code Playgroud)
仍然...这是假设重定向后一切正常,因此测试对于这些情况的重要性降低。我要遵循重定向,并检查该页面是否成功。
有什么办法可以做到吗?
您可以简单地按照重定向进行重定向,如下所示:
if ($client->getResponse()->isRedirection()) {
$client->followRedirect();
}
$this->assertTrue($client->getResponse()->isSuccessful());
Run Code Online (Sandbox Code Playgroud)
似乎有可能告诉客户端使用以下方法自己执行重定向:
$client->followRedirects(true);
$client->setMaxRedirects(10);
Run Code Online (Sandbox Code Playgroud)
因此,客户端自己遵循重定向(但是我从不尝试:)
希望有帮助
| 归档时间: |
|
| 查看次数: |
1663 次 |
| 最近记录: |