Javascript 用supertest测试二进制响应

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应用程序的其他模块/方法。谢谢!在开玩笑

我正在用express开发一个API,并用它进行测试。我的API端点正在返回tar.gz文件。我想测试,如果文件被正确发送,它的内容是正确的。我搞不清楚如何检索数据。我天真的方法是将
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)