簡體   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