symfony - 如何在 PHPUnit 测试中创建假 Symfony\Component\HttpFoundation\File\UploadedFile?
问题描述
我无法UploadedFile
在我的 PHPUnit 测试中创建假货。
我找到了Laravel 的解决方案,但找不到 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”不存在
我该如何解决这个问题?
解决方案
在您的测试目录中,创建一个名为 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'
);
}
}
推荐阅读
- etl - 我们什么时候考虑对星型模式进行雪花化?
- html - 为什么我的页面 div 没有填满整个屏幕?
- css - 伪类 after & before 仅在具有绝对位置时显示
- python - python selenium 按标签在 div 中查找元素(没有名称、类、id 或文本)
- google-sheets - 我可以向查询函数添加三个不同的规则吗?
- java - 具有 3 个实体的休眠 n+1 问题
- python - 尝试创建新的 Django CreateView 表单时,我的表单正在填充上一个表单中输入的数据
- python - 计算字符串中字符出现次数的最有效方法?
- tcp - TCP/HTTPS 是否保证文件上传/下载的完整性?
- sql - PL/SQL ORACLE 错误:我的代码中的 PLS-00225