我编写了一个测试来检查我的 Symfony2 应用程序中是否有错误/无效的 URL。
我按照中的建议使用功能测试 http://symfony.com/doc/current/book/testing.html
测试打开一条路径,检查所有
<a...></a>
标记,然后创建对这些链接的请求:
$client = (new ClientProvider())->getClient();
$crawler = $client->request('GET', $route);
$linkList = $crawler->filter('a');
foreach ($linkList as $link) {
$url = $link->getAttribute('href');
$crawler = $client->request('GET', $link->getAttribute('href'));
//... some assertion
}
问题是,某些 a 标签包含文件路径,例如“/files/sample.pdf”。 (文件路径是 web/files/...)
我想检查这些文件是否存在,但我从 PHPUnit 收到 404 错误。
我认为这是因为 phpunit 不使用网络服务器,而是直接与应用程序一起工作,因此它无法访问“web/files/...”下的文件。
这是正确的吗?或者有办法测试吗?
最佳答案
它是正确的,phpunit 不会访问您的网络服务器,这意味着没有正在进行重写/服务文件。 您可以做的是正则表达式 URL 并查找文件模式,如果发现您使用另一种方法来测试文件,例如进入您的公共(public)文件夹来查找它。
另一种选择是通过操作来控制文件分发,这样您就可以拥有更多的安全性和控制力,但需要您更改应用程序。
关于Symfony2 中下载文件的 PHPUnit 路径测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34085125/