【发布时间】:2016-07-24 07:38:11
【问题描述】:
我正在尝试测试上传 API,但每次都失败:
测试代码:
$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']));
文件路径为/public/uploads/test/34610974.jpg
这是控制器中的我的上传代码:
$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]);
我应该如何在 Laravel 5.2 中测试文件上传?如何使用call方法上传文件?
【问题讨论】:
-
Laravel 关于伪造文件上传的文档 (5.8):laravel.com/docs/5.8/http-tests#testing-file-uploads
标签: php unit-testing laravel testing upload