使用超级测试测试二进制响应



我正在开发一个带有express的API,并使用supertest对其进行测试。我的 API 端点正在返回 tar.gz 文件。我想测试一下,文件是否正确发送并且内容是否正确。我在弄清楚如何检索数据时遇到麻烦。我幼稚的方法是将res.text的内容(const res = request(app).get('/project/export')保存到文件中,提取它并检查它的内容。但是简单的保存res.text似乎不起作用,提取功能无法将其识别为正确压缩的文件。

任何帮助表示赞赏。随意建议其他模块/方法如何测试快速应用程序。 谢谢!

在 Jest 中运行测试时,对请求设置.responseType('blob')将导致response.body成为Buffer

https://visionmedia.github.io/superagent/#binary

例如:

const response = await request(app)
.get('/project/export')
.responseType('blob')
await fs.promises.writeFile('export.tar.gz', response.body)

最新更新