我正在尝试为此代码发出错误时编写测试用例:
s3.getObject({
Bucket: mediaBucket,
Key: mediaId,
}).createReadStream()
我有一个虚拟S3对象的测试,我正在使用MemoryStream来覆盖调用成功的情况。我如何发出错误,所以我可以编写一个允许我在.on('error') function(error)..
中测试行为的测试?
这是我尝试过的,没有成功:
beforeEach(function () {
var emitter = new EventEmitter;
const s3 = {
getObject: () => {
return { createReadStream: () => emitter.emit('error', new Error('Random error!')) }
},
};
答案 0 :(得分:3)
就像发生任何其他事件一样发射它:
stream.emit('error', new Error('Random error!'));
因此,上面的代码应如下所示:
const s3 = {
getObject: () => {
return { createReadStream: () => {
process.nextTick(function() {
emitter.emit('error', new Error('whoops!'));
});
return emitter;
} }
},
};