我試圖單元測試我的一個node-js模塊,它在流中大量處理。我試圖模擬一個流(我將寫入),因爲在我的模塊中我有「.on('data/end)」我想要觸發的偵聽器。基本上我希望能夠做這樣的事情:如何在NodeJS中模擬流
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();
此執行,但之後我做推(和.close()是無效的)的「關於」事件永遠不會被解僱。
我可以在流上找到的所有指導都使用'fs'或'net'庫作爲創建新流的基礎(https://github.com/substack/stream-handbook),或者他們用sinon嘲笑它,但嘲笑變得非常漫長非常快。
有沒有一種很好的方式來提供這樣的虛擬流?
校正:'新要求( '流')可讀()'(請注意資本R) – Jonny
需要不是一個構造,這將工作的w/o。新的關鍵字 – Spets