NodeJS:如何为测试服务器创建一个假的tcp套接字

时间:2015-04-09 15:55:03

标签: node.js sockets unit-testing stream mocking

我正在尝试对我的服务器代码进行单元测试(非http,自定义协议)。我需要创建一个模拟双工套接字,我可以异步发送消息并从。

接收消息

我从事件流readArray和writeArray创建双工流有一些微小的成功,但readArray需要预先设置数据,而writeArray在流结束之前不会触发。我需要测试一段时间。理想的解决方案是连接在一起的两个双工插座。

现有解决方案吗?我宁愿不必去初始化一个实际的服务器来测试它。

1 个答案:

答案 0 :(得分:1)

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!"