使用Node的serialportcallback模拟/unit testing

我正在为通过串行端口连接的第三方设备创buildWeb界面。 下面的示例代码…

var serialport = require("serialport"); var SerialPort = serialport.SerialPort; var sp = new SerialPort("/dev/ttyACM0", { parser: serialport.parsers.readline("\n") }); sp.on("data", function (rawData) { ... 

我的问题是如何模拟/unit testingsp数据事件…

您可以随意发出'data'事件,因为SerialPort实现了EventEmitter接口 。 只需使用.emit()

即使串行接口没有实际接收任何数据,该代码也会将“woot”logging到控制台。 它用.emit()伪造。

 var serialport = require("serialport"); var SerialPort = serialport.SerialPort; var sp = new SerialPort("/dev/ttys000", { parser: serialport.parsers.readline("\n") }); sp.on("data", function (rawData) { console.log('woot'); }); sp.emit('data');