sysinfo:
> PHPUnit 5.7.4
> PHP 7.0.13
> Symfony 3.2.1
我正在尝试点击“下载”页面上的链接,并验证文件是否可下载,但是当我点击链接$client-> click($crawlerDownload-> link());我得到一个404.symfony $client是否不可能访问web目录中的静态文件?我该如何测试?
Favicon测试是测试用例的简化版本.
public function testPressDownload()
{
$client = static::createClient();
$client->followRedirects(false);
//create fixture file
$kernelDir = $client->getKernel()->getRootDir();
$file = "${kernelDir}/../web/download/example.zip";
file_put_contents($file, "dummy content");
$crawler = $client->request('GET', '/files');
$this->assertEquals(200, $client->getResponse()->getStatusCode()); //ok
$crawlerDownload = $crawler
->filter('a[title="example.zip"]')
;
$this->assertEquals(1, $crawlerDownload->count()); //ok
$client->click($crawlerDownload->link());
$this->assertEquals(200, $client->getResponse()->getStatusCode()); //fails 404
}
public function testFavicon()
{
$crawler = $client->request('GET', '/favicon.ico');
$this->assertEquals(200, $client->getResponse()->getStatusCode()); //fails 404
}
解决方法:
您不能,测试正在引导应用程序,它不是“真实的Web服务器”,因此当请求/favicon.ico时,它将在应用程序中搜索与该路径相对应的路由,但找不到该路由.
要验证这一点,请创建一条伪路线:
/**
* @Route("/favicon.ico", name="fake_favicon_route")
*
* @return Response
*/
您将看到测试现在可以通过.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。