【问题标题】:PHPUnit path test for download files in Symfony2Symfony2中下载文件的PHPUnit路径测试
【发布时间】:2016-03-09 04:42:25
【问题描述】:

我编写了一个测试来检查我的 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-tags 包含文件的路径,例如“/files/sample.pdf”。 (文件路径是 web/files/...)

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

我认为这是因为 phpunit 不使用网络服务器,而是直接与应用程序一起工作,因此它无法访问“web/files/...”下的文件。

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

【问题讨论】:

    标签: php symfony phpunit functional-testing


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-19
      • 1970-01-01
      • 1970-01-01
      • 2012-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多