Laravel有提供UploadedFile类别,
其中有一个fake方法,
让我们可以生成一个虚拟的图片或文件
来测试文件上传的功能,
而不需要实际上去找个图片或文件来测试。
譬如说以下的测试语法
<?php
namespace Tests\Feature;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Http\UploadedFile;
use Illuminate\Support\Facades\Storage;
use Tests\TestCase;
class ExampleTest extends TestCase
{
public function test_avatars_can_be_uploaded()
{
Storage::fake('avatars');
$file = UploadedFile::fake()->image('avatar.jpg');
$response = $this->post('/avatar', [
'avatar' => $file,
]);
Storage::disk('avatars')->assertExists($file->hashName());
}
}
我们生成了一个avatar.jpg,
然後执行了图片上传的方法之後,
再来确认这个图片是否存在。
所以如果我们想要确认文件是否存在,
就可以使用以下的方法
Storage::fake('avatars');
// ...
Storage::disk('avatars')->assertMissing('missing.jpg');
当然我们也可以指定这个图档的宽度、高度、以及大小(KB),
方便我们来做测试
UploadedFile::fake()->image('avatar.jpg', $width, $height)->size(100);
我们也可以建立图片之外的其他档案,
譬如一个PDF档案,
其中$sizeInKilobytes是指定档案的大小(KB)
UploadedFile::fake()->create('document.pdf', $sizeInKilobytes);
我们也可以指定MIME类型
UploadedFile::fake()->create(
'document.pdf', $sizeInKilobytes, 'application/pdf'
);
>>: Day 14 - AI-900 认证心得(2) - 考试
今天来聊聊「多线程」的单元测试。 多线程测试的困难点 当系统成长到一个程度,效能的重要性就会慢慢浮现...
关於 WordPress.com 与 WordPress.org 之间,有什麽样的差异,WordPr...
在实作RESTful api时,会需要模拟实际用户使用你的api的情境,这时候postman就派得上...
这个的上一篇:https://ithelp.ithome.com.tw/articles/10283...
因为疫情的关系 体会到很多事情都要持之以恒 在突然被打乱的生活节奏中 要怎麽找回另一个习惯的步调 ...