我正在尝试在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依赖进行硬编码的方法?
答案 0 :(得分:0)
似乎您使用的是不同的文件系统光盘,该光盘在您的测试环境中具有不同的根路径。我建议设置一个.env.testing
文件。