1 回答
TA贡献1906条经验 获得超3个赞
在为测试创建新的时,您需要传递true
参数:$test
UploadedFile
new UploadedFile(__DIR__ . "/test_png.png", 'test_png.png', null, null, true)
在这里您可以找到构造函数定义:
/**
* @param bool $test Whether the test mode is active
* Local files are used in test mode hence the code should not enforce HTTP uploads
*/
public function __construct(string $path, string $originalName, string $mimeType = null, int $error = null, bool $test = false)
虽然我不明白为什么要使用真实图像进行此测试,但 Laravel 提供了一种内置方式来轻松测试文件上传。
从文档:
Storage facade 的 fake 方法允许您轻松生成一个假磁盘,结合 UploadedFile 类的文件生成实用程序,大大简化了文件上传的测试。
因此,您的测试可以简化为以下内容:
use Illuminate\Http\UploadedFile;
use Illuminate\Support\Facades\Storage;
/** @test */
public function it_can_upload_image()
{
Storage::fake();
$this->post('/media', ['media' => UploadedFile::fake()->image('test_png.png')])
->assertStatus(200);
}
- 1 回答
- 0 关注
- 110 浏览
添加回答
举报