【发布时间】:2021-12-01 16:47:01
【问题描述】:
你好,提前谢谢你!
我正在尝试使用 jest 和 supertest 测试 multer 文件大小和计数验证,但我在创建假文件时遇到了问题。
这个想法是使用“假”文件而不是从磁盘读取真实文件
这是我目前得到的:
const formData = new jsdom.window.FormData()
const mockFile = {
size: 10 * 1024 * 1024,
type: 'text/plain'
} as Blob
for (let i = 0; i < 12; i++) {
formData.append('files', mockFile)
}
await request(app)
.post(`/api/file-upload/`)
// .send(mockFile)
.attach('files', mockFile)
// .attach('files', mockFile)
.expect(200)
我尝试使用.send() 发送文件,但据我从文档中了解,它用于发送json 数据,所以.attach 是正确的。使用.send() 我总是得到req.files undefined,使用.attach() 我得到TypeError: source.on is not a function。
我假设问题可能与我尝试附加的“文件”有关,我可能会错误地模拟它。所以问题是,如何模拟文件并将其与超测试请求一起使用,而不是将真实文件存储在磁盘上并使用不同的附加方式,如.attach('files', '/path-to-file/file.etc')
【问题讨论】:
标签: typescript jestjs multer supertest