Zan*_*n13 2 php unit-testing symfony laravel-5
我正在测试在 Laravel 5.1 项目中上传文件。
签入验证方法之一如下所示
//assuming $file is instance of UploadedFile class
if ( ! $file->isValid()) {
/*add errors and return*/
}
Run Code Online (Sandbox Code Playgroud)
我需要测试这张支票。
问题是:如何创建无效的上传文件?
( UploadedFileextends Symfony\Component\HttpFoundation\Fileclass 扩展SplFileInfophp 类)
我经常发现查看库源很有帮助:
您可以看到该isValid方法检查 if $this->error === UPLOAD_ERR_OK,这是默认值。
设置 的唯一方法error,因为它是一个私有变量,是通过构造函数:
public function __construct($path, $originalName, $mimeType = null, $size = null, $error = null, $test = false)
Run Code Online (Sandbox Code Playgroud)
因此,在创建 $file 对象时,只需确保将 $error 设置为某些内容。以下是所有可用的错误常量:
http://php.net/manual/en/features.file-upload.errors.php
例如,您可以这样做:
$file = new UploadedFile($path, $origName, $mimeType, UPLOAD_ERR_INI_SIZE, true);
Run Code Online (Sandbox Code Playgroud)
测试时需要最后一个参数以禁用检查该文件是否通过 HTTP 上传(以防您的测试实际创建文件)
| 归档时间: |
|
| 查看次数: |
855 次 |
| 最近记录: |