对 laravel 文件下载位置进行单元测试



我是拉拉维尔的新手。我正在 laravel 上编写单元测试以下载 csv 文件。当我运行测试用例时,我assertResponseStatus为 200,我需要打开创建的 csv 文件,但我找不到下载文件的位置。如何找到下载的文件。

这是控制器功能

    public function generateCsv(){
    $list = $this->csvRepo->getDetails();
    $heading = array(
        'heading 1',
        'heading 2',
        'heading 3'
    );
    $this->csvRepo->generateCsv($heading,'csv',$list);
}

运行测试用例时,我需要知道下载文件的位置

假设您使用的是最新版本的Laravel/PHP Unit,您可以使用以下内容:

class ExampleFileDownload  extends TestCase
{
public function fileDownloads()
  {
    Storage::fake('file');
    // assuming we wanted to test like this:
    $response = $this->json('POST', '/test', [
        'file' => UploadedFile::fake()->image('testing.jpg')
    ]);
    // Assert the file was stored – I believe this is the line you are looking for
    Storage::disk('file')->assertExists('testing.jpg');
    // Assert a file does not exist...
    Storage::disk('file')->assertMissing('missing.jpg');
  }
}

让我知道你是如何相处的:)

最新更新