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

问题描述 投票:1回答:1

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

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

javascript express testing supertest superagent
1个回答
0
投票

在Jest jsdom环境中运行测试时,在请求上设置.responseType('blob')将导致req.body成为Buffer

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

例如:

const response = await request(app)
  .get('/foo.tar.gz')
  .responseType('blob')

await fs.promises.writeFile('foo.tar.gz', response.body)
© www.soinside.com 2019 - 2024. All rights reserved.