0

我正在尝试在 laravel 5.7 中创建一个测试,该测试涉及创建一个假图像对象,该对象进一步被服务使用,该服务将其移动到公用文件夹中的所需目录。如果我通过浏览器上传文件,我的服务工作正常,但如果我通过测试运行,它会在根目录中创建一个文件夹并在那里上传图像。

服务代码:

$data['icon'] = time().'.'.$file->getClientOriginalExtension();
$file->move('uploads/avatar/icon', $data['icon']);

测试文件代码:

$file = UploadedFile::fake()->image('random.jpg');

现在,如果我在服务代码中指定路径,它会给出所需的结果

$data['icon'] = time().'.'.$file->getClientOriginalExtension();
$file->move(public_path('uploads/avatar/icon'), $data['icon']);

有没有办法不硬编码 public_path 依赖项?

4

1 回答 1

0

好像您使用的是不同的文件系统磁盘,它在您的测试环境中具有不同的根路径。我建议设置一个.env.testing文件。

于 2019-01-28T13:07:26.613 回答