Comment test d'upload de fichier dans Laravel 5.2
Im essayant de tester un téléchargement de l'API, mais il échoue à chaque fois:
Code De Test :
$JSONResponse = $this->call('POST', '/upload', [], [], [
'photo' => new UploadedFile(base_path('public/uploads/test') . '/34610974.jpg', '34610974.jpg')
]);
$this->assertResponseOk();
$this->seeJsonStructure(['name']);
$response = json_decode($JSONResponse);
$this->assertTrue(file_exists(base_path('public/uploads') . '/' . $response['name']));
chemin d'accès au fichier est /public/uploads/test/34610974.jpg
Voici Mon code de Téléchargement dans un contrôleur :
$this->validate($request, [
'photo' => 'bail|required|image|max:1024'
]);
$name = 'adummyname' . '.' . $request->file('photo')->getClientOriginalExtension();
$request->file('photo')->move('/uploads', $name);
return response()->json(['name' => $name]);
Comment dois-je tester le fichier télécharger dans Laravel 5.2? Comment utiliser call
méthode pour télécharger un fichier?
- Laravel documentation (5.8) sur truquer les uploads de fichier: laravel.com/docs/5.8/http-tests#testing-file-uploads
Vous devez vous connecter pour publier un commentaire.
Lorsque vous créez une instance de
UploadedFile
ensemble le dernier paramètre$test
àtrue
.Voici un exemple rapide d'une épreuve de travail. Il s'attend à ce que vous avez un talon
test.png
fichier danstests/stubs
dossier.$request->file('photo')
a en effet la UploadFile objet, mais$test
dans cet objet a sa valeur par défautfalse
. Étrange, parce que la nouvelle UploadedFile a l' $test = true paramètre.$file = new UploadedFile($path, $name, 'image/png', filesize($path), null, true);
Dans Laravel 5.4 vous pouvez également utiliser
\Illuminate\Http\UploadedFile::fake()
. Un exemple simple ci-dessous:Si vous voulez simuler un type de fichier différent, vous pouvez utiliser
Plus d'informations directement sur Laravel Documentation.
Vous pouvez trouver ce code lors de cette lien
Installation
Utilisation
Structure De Dossier: