gpt4 book ai didi

php - 下载文件的单元测试

转载 作者:行者123 更新时间:2023-12-04 05:39:11 27 4
gpt4 key购买 nike

首先,我使用 codeigniter 作为我的 PHP 框架。很抱歉问这个,我正在尝试掌握单元测试的想法。他们说在开发站点功能之前进行单元测试是一个很好的做法。所以在这里我渴望学习:

我的方法:

function download()
{
$data = file_get_contents("resources/temp/file.doc");
$name = "new_file.doc";

force_download($name, $data);
}

然后我用 testDownload 方法创建了一个测试 Controller :
public function testDownload()
{
//Call the controller method
$this->CI->download();

//Fetch the buffered output
$out = output();

$this->assertFalse(preg_match('/(error|notice)/i', $out));
}

然后我测试它: phpunit test.php 并给了我这个:
F[CIUnit] PHP Error: Warning - file_get_contents(resources/temp/file.doc): failed to open stream: No such file or directory File Path: controllers/contract.php (line: 22)


Time: 4 seconds, Memory: 7.50Mb

There was 1 failure:

1) ContractTest::testDownload
Failed asserting that 0 is false.

我只想测试它是否具有正确的路径。或者我真的需要一个测试脚本来下载文件吗?对不起,我只是糊涂了。

最佳答案

“没有这样的文件或目录”的原因:

当您使用 PHPUnit 进行测试时,当前工作目录将相对于您运行 phpunit 的目录。但是在代码中,您将相对于您的网络服务器目录进行写入。

顺便说一句,单元测试应该测试您编写的代码。在单元测试中测试外部资源似乎不是一个好主意。

关于php - 下载文件的单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11500724/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com