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

r8uurelv  于 2023-06-24  发布在  PHP
关注(0)|答案(2)|浏览(125)

我无法在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”不存在
我该如何解决这个问题?

yizd12fk

yizd12fk1#

在tests目录中,创建一个名为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'
        );
    }
}
pqwbnv8z

pqwbnv8z2#

$path必须如下:
$path = '/tmp/MANA-BULL 12-2018 Ali.pdf';

相关问题