【问题标题】:Simulate an ECONNRESET error on a Node.js net.Socket instance在 Node.js net.Socket 实例上模拟 ECONNRESET 错误
【发布时间】:2020-01-08 22:42:38
【问题描述】:

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

最好的方法是什么?

谢谢

【问题讨论】:

    标签: node.js unit-testing


    【解决方案1】:

    我最后走的路是这样的:

    client.end();
    client.emit('error', new Error('ECONNRESET'));
    

    这是我测试所需的全部内容

    【讨论】:

      【解决方案2】:

      对于这种情况,有一些更简单的解决方案:

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

      根据socket.destroy([exception])docs

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-01-24
        • 1970-01-01
        • 2018-03-21
        • 2013-06-19
        • 1970-01-01
        • 2017-06-27
        相关资源
        最近更新 更多