NodeJS:如何为testing服务器创build一个虚假的tcp套接字

我试图unit testing我的服务器代码(非HTTP,自定义协议)。 我需要创build一个模拟双工套接字,我可以asynchronous地发送消息并接收消息。

我从事件streamreadArray和writeArray创build了一个双工stream,但是readArray需要提前写入数据,writeArray不会触发,直到stream结束。 我需要testing一段时间。 一个理想的解决scheme是将两个双工sockets连接在一起。

有没有现有的解决scheme呢? 我宁愿不必诉诸初始化一个实际的服务器来testing这个。

Node Mitm实际上可以做到这一点。 它可以拦截和嘲笑不仅HTTP而且任何TCP连接。

mitm.on("connection", function(socket) { socket.write("Hello back!") }) var socket = Net.connect(22, "example.org") socket.write("Hello!") socket.setEncoding("utf8") socket.read() // => "Hello back!"