【发布时间】:2016-01-13 11:12:49
【问题描述】:
我正在尝试对我的一个 node-js 模块进行单元测试,该模块主要处理流。我正在尝试模拟一个流(我将写入),因为在我的模块中我有我想触发的“.on('data/end)”侦听器。基本上我希望能够做这样的事情:
var mockedStream = new require('stream').readable();
mockedStream.on('data', function withData('data') {
console.dir(data);
});
mockedStream.on('end', function() {
console.dir('goodbye');
});
mockedStream.push('hello world');
mockedStream.close();
这会执行,但在我执行推送后,'on' 事件永远不会被触发(并且 .close() 无效)。
我可以在流上找到的所有指导都使用“fs”或“net”库作为创建新流的基础 (https://github.com/substack/stream-handbook),或者他们用 sinon 模拟它,但模拟变得非常冗长非常快.
有没有很好的方法来提供这样的虚拟流?
【问题讨论】:
标签: node.js unit-testing node.js-stream