node.js - 如何使用 SuperTest 进行单元测试以使用 multer 发布文件
问题描述
现在,我有一个表单,它使用 multer 和 aws-S3 提交图像“文件”数组,并接收以下类型的对象以在 POST 控制器中进行处理:
files: [
{
fieldname: 'uploaded',
originalname: 'test.jpg',
encoding: '7bit',
mimetype: 'image/jpeg',
size: 1407923,
bucket: 'mybucket',
key: '2343.jpg',
acl: 'public-read',
contentType: 'application/octet-stream',
contentDisposition: null,
storageClass: 'STANDARD',
serverSideEncryption: null,
metadata: null,
location: 'https://mybucket.s3.us-east-2.amazonaws.com/12144etest.jpg',
etag: '"7503d8c8f9cdca"',
versionId: undefined
}
]
如何使用 supertest 发布这样的模拟对象?现在我有这个,但我收到一个 500 内部服务器错误,很明显我做错了什么:
let res = await api
.post("/login")
.send({"username" : "user", "password": "pass"})
await supertest(app)
.post('/upload')
.attach('files', 'test.jpg')
.set('cookie', res.headers['set-cookie'])
解决方案
await supertest(app)
.post('/upload')
.attach('files', `${__dirname}/test.jpg`) // added __dirname here.
推荐阅读
- unity3d - 致命:将 Unity 项目升级到较新版本时添加文件失败
- django - 编辑表格中的单元格保存到 django 模型
- reactjs - React-data-grid :根据行的值更改行颜色
- python - Mac OS X:无法通过 pip 安装 easysnmp
- android - Android Studio 模拟器打开后立即关闭
- android - Android 每 x 分钟运行一次 Kotlin Coroutine
- javascript - 新函数字符串到真正的 javascript 的替代选项
- javascript - 如何使用 Exif 库来旋转图像?
- mysql - Spring JWT,缺少有关数据库中角色的信息
- mongodb - 通过从值中转义 html 标记来进行 Mongo 字段搜索