Im bir yükleme API test etmeye ama her zaman başarısız:laravel dosya yükleme testi nasıl 5.2
Testi Kodu:
$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']));
dosya yolu/kamu/uploads/Test/34610974.jpg İşte
bir denetleyici Benim yükle kodudur:
$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]);
nasıl laravel 5.2 dosya yükleme test etmeliyim? Dosya yüklemek için call
yöntemi nasıl kullanılır?
Bu işe yaramalı, ama değil. '$ request-> file ('photo')' gerçekten de UploadFile nesnesine sahiptir, ancak bu nesnede '$ test' 'varsayılan değerine' false 'sahiptir. Tuhaf, çünkü yeni UploadedFile $ test = true parametresine sahip. – schellingerht
Yukarıdaki cevap> 5.2.14 için yeterli değildir. Doğru cevabı burada bulabilirsiniz: http://stackoverflow.com/questions/36857800/laravel-5-2-testing-uploadedfile-misses-the-test-value-after-post-bug – schellingerht
'$ dosya olmalı = new UploadedFile ($ path, $ name, 'image/png', filesize ($ yol), null, true); ' –