Laravel测试文件上传返回null



我试图测试文件上传,控制器总是为$request->file('file')返回null

这是我的测试

test('can upload file', function () {
Storage::fake('local');
$file = UploadedFile::fake()->image('avatar.jpg');
$this->post(route('admin.ajax.files.store', [
'file' => $file
]));
Storage::disk('local')->assertExists($file->hashName());
});

然后在控制器中:

public function store(Request $request)
{
dd($request->file('file'));
}

输出零

如果我看$request->file,我看到

array:1 [
"name" => "avatar.jpg"
]

我不确定我在没有实际上传文件的情况下测试上传文件做错了什么。

您需要将数组移动到->post()

$this->post(route('admin.ajax.files.store'), [
'file' => $file
]);

最新更新