如何用PHP编写文件上传测试?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (93)

我正在使用simpleTest编写我的PHP测试。我正在写一个文件上传插件,并想知道我可能会如何测试它。

我想检查文件是否正确上传,在正确的文件夹中,错误是否在需要时正确返回等等。

如何模拟文件上传(通过$ _FILES变量)?我应该注意哪些问题?

提问于
用户回答回答于

我找到了一个替代解决方案。我用测试数据$_FILES欺骗了阵列,在文件tmp/夹中创建了虚拟测试文件(。

问题在于,is_uploaded_filemove_uploaded_file无法用于这些项目,因为它们并未真正上传。我做的第一件事就是将这些函数包装在我自己的插件中,然后插入我的插件中,这样我就可以更改它们的返回值。

用户回答回答于

SimpleTest支持自1.0.1版以来的FileUpload测试:

File upload testing     Can simulate the input type file tag    1.0.1

我已经在他们的网站上查看了这些例子,并假设你会沿着这些方向使用某些东西

$this->get('http://www.example.com/');
$this->setField('filename', 'local path');
$this->click('Go');

提交文件,然后使用常规断言来检查上传是否按照要求工作。

但基本上,没有太多的使用测试表单上传文件。这是经过验证的浏览器行为。测试处理上传的代码更有意义。我不知道你是如何实现你的FileUpload代码的,但是如果我必须实现这个,我会摆脱对$_FILES数组的依赖关系作为第一件事。创建一个可以传递$_FILES数组的类。然后,你可以处理该类的上传。这将允许你在不实际上传文件的情况下测试功能。

扫码关注云+社区

领取腾讯云代金券