Symfony2中下载文件的PHPUnit路径测试

时间:2015-12-04 09:40:17

标签: php symfony phpunit functional-testing

我写了一个测试来检查我的Symfony2应用程序中的错误/死网址。

我按照建议使用功能测试 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-tags包含文件路径,例如&#34; /files/sample.pdf" ;. (filepath是web / files /...)

我想检查这些文件是否存在,但是我从PHPUnit得到了404错误。

我认为这是因为phpunit不使用网络服务器,而是直接使用该应用程序,因此它无法访问&#34; web / files /..."。< / p>

这是正确的,还是有办法测试这个?

1 个答案:

答案 0 :(得分:2)

它是正确的,phpunit不会去你的网络服务器,这意味着没有重写/服务文件正在进行。 您可以做的是正则表达URL并查找文件模式,如果发现您使用另一种方法来测试文件,例如进入公共文件夹查找文件的文件。

另一个选择是有一个控制文件分发的操作,这样你有更多的安全和控制,但需要你更改你的应用程序。