Das Testen von Uploads ist in Laravel hier eigentlich sehr gut dokumentiert. Wichtig zu beachten ist allerdings, das der Name der Fake Storage-Disk dem getesteten Upload Handler zur Verfügung gestellt wird. Wenn man die Default Disk nutzt kann man hierfür in der phpunit.xml z.B. folgenden Eintrag hinzufügen:
<env name="FILESYSTEM_DRIVER" value="test_disk"/>
Im Test muss dann natürlich die Fake Storage-Disk mit dem Namen ‚test_disk‘ verwendet werden:
$user = factory(User::class)->create();
$disk = 'test_disk';
Storage::fake('test_disk');
$file = UploadedFile::fake()->image('avatar.jpg');
$response = $this->actingAs($user)->json('POST', route('uploads.store'), [
'file' => $file,
]);
$response->assertStatus(200);
Storage::disk('test_disk')->assertExists($file->hashName());