我正在使用supertest测试我的 API 端点,效果很好,但我不知道如何测试文件下载是否成功。
在我的路由文件中,我将端点定义为:
app.get('/api/attachment/:id/file', attachment.getFile);
函数getFile()
看起来像这样:
exports.getFile = function(req, res, next) {
Attachment.getById(req.params.id, function(err, att) {
[...]
if (att) {
console.log('File found!');
return res.download(att.getPath(), att.name);
}
然后,在我的测试文件中,我尝试以下操作:
describe('when trying to download file', function() {
it('should respond with "200 OK"', function(done) {
request(url)
.get('/api/attachment/' + attachment._id + '/file');
.expect(200)
.end(function(err, res) {
if (err) {
return done(err);
}
return done();
});
});
});
我确定该文件已找到,因为它注销了File found!
. 如果我手动尝试它也可以正常工作,但由于某种原因,摩卡返回Error: expected 200 "OK", got 404 "Not Found"
。
我已经尝试过不同的 mime-types 和 supertest .set("Accept-Encoding": "*")
,但没有任何效果。
有人知道怎么做吗?