• Developer New

    Saturday, March 25, 2017

    Testing File Uploads With Laravel

    Laravel now includes a new system for testing file uploads through two new 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

    Fashion

    Beauty

    Travel