模拟Node.js net.Socket实例上的ECONNRESET错误

时间:2014-04-03 11:36:31

标签: node.js unit-testing

我正在编写一些单元测试,我想在net.Socket实例上模拟连接丢失(ECONNRESET),作为其中一个测试的一部分。

这样做最好的方法是什么?

由于

2 个答案:

答案 0 :(得分:3)

我最终的方式如下:

client.end();
client.emit('error', new Error('ECONNRESET'));
为了测试的目的,我只需要

答案 1 :(得分:0)

在这种情况下,还有一些速记解决方案:

socket.destroy(new Error('ECONNRESET'))

根据socket.destroy([exception]) docs

如果指定了异常,则将发出“错误”事件,并且任何 该事件的侦听器将接受异常作为参数。

此外,end(服务器可能仍会发送一些数据)与destroy(确保此套接字上不再发生I / O活动)之间存在细微差别。对于ECONNRESET,后者是最佳选择,因为此代码通常意味着突然断开对等体,并且在后续写入时将出错。