如何模拟' createReadStream '上的EventEmitter
How to mock an EventEmitter on `createReadStream`?
我试着写一个测试用例,当一个错误发出作为这段代码的结果:
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!')) }
},
};
就像处理其他事件一样发出它:
stream.emit('error', new Error('Random error!'));
所以,上面的代码应该看起来像:
const s3 = {
getObject: () => {
return { createReadStream: () => {
process.nextTick(function() {
emitter.emit('error', new Error('whoops!'));
});
return emitter;
} }
},
};
相关文章:
- 如何使用jQuery自动打开页面上的所有链接
- 如何使Javascript动态html表及其上的事件
- 对iPad上的点击事件反应缓慢
- 偶尔结结巴巴地说“;堆叠的”;translate()上的转换(v4.0.0-alpha40)
- 设置滑块分区上的滚动
- Html页面上的多个Base64图像和平滑加载
- 如何确定javascript已经完成了某些操作.ios上的
- 如何从画布上的某个移动事件中获取X和Y
- JsFiddle上的鼠标事件不起作用
- delete关键字在全局变量上的不同行为
- 用Javascript更改我网站上的字体大小
- 激活chrome上的chrome.notifications对象
- 单击页面上的链接后高度发生变化
- 用与线条相同的颜色填充多折线图上的点
- Meteor上的启动页面
- 主体上的addEventListener('mousemove',..)-有多糟糕
- 检查onsubmit doenst work jquery contactform上的函数
- 使用数据上的角度更改设置集合的第一个元素的动画
- Safari(Mac OS)上的jQuery平滑滚动问题
- 如何模拟' createReadStream '上的EventEmitter