0
我试图写一个测试用例时错误地发出这个代码的结果:如何模拟`createReadStream`上的EventEmitter?
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!')) }
},
};
我更新了我的问题,以准确显示我在做什么。我试图发出一个错误,我只是明确地做错了什么。 –
您需要先*返回发射器。然后使用'process.nextTick()'/'setImmediate()'发出错误,因为这会给调用者留下时间来附加'error'事件处理程序。 – mscdex
谢谢,那就是诀窍! –