fake
methods, one on the UploadFile
class and another on the Storage
facade.As the documentation shows here is a full test showing it in use:
<?php
namespace Tests\Feature;
use Tests\TestCase;
use Illuminate\Http\UploadedFile;
use Illuminate\Support\Facades\Storage;
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ExampleTest extends TestCase
{
public function testAvatarUpload()
{
Storage::fake('avatars');
$response = $this->json('POST', '/avatar', [
'avatar' => UploadedFile::fake()->image('avatar.jpg')
]);
// Assert the file was stored...
Storage::disk('avatars')->assertExists('avatar.jpg');
// Assert a file does not exist...
Storage::disk('avatars')->assertMissing('missing.jpg');
}
}
You can also customize the files width, height, and size for testing validation:UploadedFile::fake()->image('avatar.jpg', $width, $height)->size(100);
Or create other types of files like PDF’s:UploadedFile::fake()->create('document.pdf', $sizeInKilobytes);
This feature is in the latest Laravel release and you can find out more details in the
No comments:
Post a Comment