Codeception:我如何测试文件下载?

Fel*_*ikZ 6 php testing acceptance-testing codeception

我有一个页面,其中包含多个选项和一个名为“下载”的按钮。

我如何测试此按钮是否有效 - 文档开始下载,使用 Codeception 验收测试?

小智 4

请参阅上一个有关保存到磁盘的问题如何使用 Selenium Webdriver 下载任何文件并将其保存到所需位置

我不认为 Codeception 可以控制本机“另存为”对话框。您可以更改 Firefox 配置文件以在不询问的情况下保存,检查 PHP 中的文件是否存在,如果文件不存在则断言错误。

如果您使用 Cest 格式,您可以在_support/WebHelper.php.

<?php
namespace Codeception\Module;

// here you can define custom functions for WebGuy

class WebHelper extends \Codeception\Module
{

    public function seeFileExists($filename)
    {
        \PHPUnit_Framework_Assert::assertTrue( file_exists($filename) );
    }

}
Run Code Online (Sandbox Code Playgroud)

$I->seeFileExists('downloadpath/filename.txt');这应该允许您在 Cest 文件中执行此操作。

文档中有一些自定义断言的示例http://codeception.com/docs-2.0/03-ModulesAndHelpers