laravel文件下载位置的单元测试

时间:2017-05-24 06:40:47

标签: laravel unit-testing csv download

我是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);
}

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

1 个答案:

答案 0 :(得分:1)

假设您使用的是最新版本的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');
  }
}

让我知道你是如何进行的:)