I want to test UploadedFile Exception in phpunit, but don't know how to occur.
I'd been searching for laravel docs and phpunit docs, but can't get infos.
Versions
- laravel 5.5
- phpunit 6.5
Below, excerpt codes.
Thanks.
phpunit
<?php declare(strict_types = 1);
namespace Tests\Foo;
use Tests\TestCase;
use Illuminate\Http\UploadedFile;
final class FooTest extends TestCase
{
/**
* @test
*/
public function failure()
{
$image_path = storage_path() . '/test/test.png';
$file = new UploadedFile($image_path, 'test.png', 'image/png', filesize($image_path), null, true);
$params = [
'_method' => 'put',
'image' => $file
];
$this->json('post', '/foo', $params)->assertStatus(400);
}
}
routes
<?php
Route::put('/foo', 'FooController@put');
controller
<?php declare(strict_types = 1);
namespace App\Http\Controllers;
use Exception;
use Illuminate\Http\Request;
use Illuminate\Http\JsonResponse;
use App\Http\Controllers\Controller;
final class FooController extends Controller
{
public function put(Request $request): JsonResponse
{
$this->validate($request, [
'image' => 'required|image|max:9999999'
]);
$file = $request->file('image');
try {
$file->store('foo/');
} catch (Exception $e) {
// exec this
return response()->json(['error' => $e->getMessage()], 400);
}
return response()->json(['success' => 'success'], 200);
}
}
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire