如何使用 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'])
 

解决方法

使用文件的完整路径将解决您的问题。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...