phpunit – 如何在php命令行中模拟文件上传

前端之家收集整理的这篇文章主要介绍了phpunit – 如何在php命令行中模拟文件上传前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是 PHPUnit测试框架的新手.

我们知道,在通过http POST方法上传文件之前,PHP的move_uploaded_file()函数不起作用

所以,问题是如何在PHP命令行中模拟这个

注意:使用selenium我们可以模拟webform ..但我需要另一种选择.

您基本上需要使您的代码更易于测试.将其分解,以便您可以测试通过HTTP分别从其余代码上传文件的简单操作. move_uploaded_file的主要用途是放入一个额外的安全停止,这样你就不会被诱骗移动其他文件,move_uploaded_file只是确保文件是在同一个请求中上传然后移动它.您也可以使用重命名简单地移动文件.因此,将应用程序分解为具有一个Request对象,该对象表示并封装当前的HTTP请求,包括使用is_uploaded_file检查上载的文件.验证完成后,您可以使用重命名而不是move_uploaded_file.在测试中,您可以模拟Request对象并测试其他代码.

您也可以简单地使move_uploaded_file成为可模拟的,例如:

class Foo {

    public function do() {
        ...
        $this->move_uploaded_file($from,$to);
        ...
    }

    protected function move_uploaded_file($from,$to) {
        return move_uploaded_file($from,$to);
    }

}

在测试中,您可以扩展/模拟类,并覆盖Foo :: move_uploaded_file以始终返回true,例如.

原文链接:https://www.f2er.com/php/133106.html

猜你在找的PHP相关文章