首页 > 解决方案 > 将 sinon fakeTimer 与 supertest 一起使用会导致错误

问题描述

当我将 sinon fakeTimer 与 supertest 一起使用时,会导致错误Error: socket hang up。为什么以及如何解决它,请帮助?

标签: node.jsautomated-testsmocha.jssinonsupertest

解决方案


这是一个非常古老的问题,我希望您找到答案,但也许我的回答对其他人有所帮助。

只用 sinon 伪造必要的“功能”。useFakeTimers默认情况下fakesetIntervalsetImmediatejs 功能正常,因此会导致挂断。

设置选项的toFake参数useFakeTimers

const sandbox = createSandbox();
sandbox.useFakeTimers({
    now: currentDate.getTime(),
    toFake: ['Date']
  });
// ... tests
sandbox.restore();

https://sinonjs.org/releases/v6.2.0/fake-timers/


推荐阅读