我正在为通过串行端口连接的第三方设备的Web界面进行开发。下面的示例代码...

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

sp.on("data", function (rawData) {
...


我的问题是如何模拟/测试“数据”事件...

最佳答案

您可以随意发出“数据”事件,因为SerialPort实现了the EventEmitter interface。只需使用.emit()

即使串行接口实际上没有接收到任何数据,此代码也将“向”控制台记录“呼”。它用.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');

关于javascript - 使用Node串行端口回调时的模拟/单元测试,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30251218/

10-11 23:09