繁体   English   中英

使用文件系统在 laravel 中进行单元测试

[英]Unit testing in laravel using filesystems

我正在使用文件系统配置进行单元测试。 我想将我的文件系统磁盘 map 放到一个测试目录中,我将在其中放置我的文件(JSON、Excel、txt)以供应用程序用于测试目的。 我不想使用假目录,因为我需要将文件放在“导入”位置。

文件系统.php:

'disks' => [
    'import' => [
        'driver' => 'local',
        'root' => '/import/clientname',
        'visibility' => 'private'
    ],
];

在应用程序中,这是我要测试的 function:

public function importFile(){
    $filesystem = Storage::disk('import');
    
    ...
}

我正在考虑的解决方案是使用此位置进行测试:

在此处输入图像描述

有没有办法实现这个解决方案?

是的,例如,您可以使用每个磁盘上传文件,然后断言该目录中是否存在文件。

使用表单上传图片的单元测试示例:

public function testStorage()
{
    $file = UploadedFile::fake()->image('File10.png');
    $response = $this->post(route("save.image"), [
        'file' => $file,
    ]);
    $response
        ->assertStatus(200)
        ->assertSessionHasNoErrors();
    Storage::disk('local')->assertExists("/images/" . $file->name);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM