- Windows 10
- PHP 7.4.5
- Laravel Framework 7.9.2
アップロードAPI
app/Http/Controllers/ImagesController.php
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Exception;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
class ImagesController extends Controller
{
public function upload(Request $request)
{
try {
$path = $request->file('file')->store('images');
return response()->json([
'path' => $path
]);
} catch (Exception $e) {
return response($e->getMessage(), 500);
}
}
}
テストコード
tests/Feature/ImageFeatureTest.php
<?php
namespace Tests\Feature;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Foundation\Testing\WithFaker;
use Illuminate\Http\UploadedFile;
use Illuminate\Support\Facades\Storage;
use Tests\TestCase;
class ImageFeatureTest extends TestCase
{
use RefreshDatabase;
/**
* @test
*/
public function upload_success()
{
// Data
$file = UploadedFile::fake()->image('dummy.jpg', 800, 800);
// Test
Storage::fake('local');
$response = $this->json('POST', '/image/upload', [
'file' => $file
]);
$response->assertOk()->assertJsonStructure(['path']);
Storage::assertExists($response->decodeResponseJson('path'));
}
}