我正在编写一些单元测试,我想在net.Socket实例上模拟连接丢失(ECONNRESET),作为其中一个测试的一部分。
这样做最好的方法是什么?
由于
答案 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
,后者是最佳选择,因为此代码通常意味着突然断开对等体,并且在后续写入时将出错。