phpunit – 如何在php命令行中模拟文件上传
发布时间:2020-12-13 16:02:57 所属栏目:PHP教程 来源:网络整理
导读:我是 PHPUnit测试框架的新手. 我们知道,在通过http POST方法上传文件之前,PHP的move_uploaded_file()函数不起作用 所以,问题是如何在PHP命令行中模拟这个 注意:使用selenium我们可以模拟webform ..但我需要另一种选择. 您基本上需要使您的代码更易于测试.将
我是
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,例如. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |