如何在PHPUnit测试中创建伪造的Symfony \ Component \ HttpFoundation \ File \ UploadedFile?

时间:2019-08-01 10:01:30

标签: symfony phpunit

我无法在我的PHPUnit测试中创建伪造的UploadedFile

我为Laravel找到了solution,但对于Symfony却找不到。

这是我的代码:

$path = '/tmp';
$originalName = 'MANA-BULL 12-2018 Ali.pdf';
$mimeType = "application/pdf";
$size = 4455;
$error = 0;
$fileRaw = new UploadedFile(
  $path,
  $originalName,
  $mimeType,
  $size,
  $error,
  $test = false
);

return $fileRaw;

我收到以下异常:

  

Symfony \ Component \ HttpFoundation \ File \ Exception \ FileNotFoundException:   文件“ / tmp”不存在

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

在测试目录中,创建一个名为Fixtures的文件夹。在该文件夹中,放置测试PDF文件。通过测试,您现在可以像这样创建上传文件:

<?php

namespace App\Tests\Functional;

use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
use Symfony\Component\HttpFoundation\File\UploadedFile;

class UploadTest extends WebTestCase
{
    public function test_uploadFile()
    {
        $uploadedFile = new UploadedFile(
            __DIR__.'../fixtures/foo.pdf',
            'foo.pdf'
        );
    }
}