nik*_*ohn 8 javascript testing mocha.js node.js express
在我的Node.js,Express.js应用程序中,我使用了一个API来转换为CSV文件,然后在客户端上下载它,如下所示:
res.setHeader('Content-Type', 'application/octet-stream');
res.setHeader('Content-Disposition', 'attachment; filename=BuyNowOrders.csv;');
res.end(csv, 'binary');
Run Code Online (Sandbox Code Playgroud)
我有Mocha/Sinon/Nighwatch.js测试套件,我用它进行单元测试以及功能测试,使用完整的mock-api服务器模块提供模拟数据.
我该如何测试此功能?通常我会为每个模块进行功能测试和单元测试.
到目前为止,我已经为页面上的" 下载"按钮编写了测试,但我不确定如何测试文件是否已下载.
这就是我的做法,考虑到我的文件是作为编码附件从正在进行功能测试的端点返回的。
function binaryParser(res, callback) {
res.setEncoding('binary');
res.data = '';
res.on('data', function (chunk) {
res.data += chunk;
});
res.on('end', function () {
callback(null, new Buffer(res.data, 'binary'));
});
}
it("returns success response (200) and attachment file when downloading data file", (done) => {
request
.get('/download/XXXXX/data')
.expect(200)
.expect('Content-Type', 'application/json; charset=utf-8') // encoded content
.buffer()
.parse(binaryParser)
.end((err, res) => {
if (err) {
return done(err);
}
assert.ok(Buffer.isBuffer(res.body));
console.log("res=", res.body);
done();
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1106 次 |
| 最近记录: |