Javascript 用supertest测试二进制响应
我正在用express开发一个API,并用它进行测试。我的API端点正在返回tar.gz文件。我想测试,如果文件被正确发送,它的内容是正确的。我搞不清楚如何检索数据。我天真的方法是将Javascript 用supertest测试二进制响应,javascript,express,testing,supertest,superagent,Javascript,Express,Testing,Supertest,Superagent,我正在用express开发一个API,并用它进行测试。我的API端点正在返回tar.gz文件。我想测试,如果文件被正确发送,它的内容是正确的。我搞不清楚如何检索数据。我天真的方法是将res.text(其中const res=request(app).get('/project/export')保存到一个文件中,提取它并检查它的内容。但是简单地保存res.text似乎不起作用,提取功能无法识别它是正确压缩的文件 感谢您的帮助。请随意建议如何测试express应用程序的其他模块/方法。谢谢!在开玩笑
res.text
(其中const res=request(app).get('/project/export')
保存到一个文件中,提取它并检查它的内容。但是简单地保存res.text
似乎不起作用,提取功能无法识别它是正确压缩的文件
感谢您的帮助。请随意建议如何测试express应用程序的其他模块/方法。谢谢!在开玩笑地运行测试时,在请求上设置
。responseType('blob')
将导致请求正文
成为缓冲区
例如:
const response = await request(app)
.get('/project/export')
.responseType('blob')
await fs.promises.writeFile('export.tar.gz', response.body)