如何检查是否使用 sinon.useFakeTimers 调用了 clearTimeout?

How to check if clearTimeout was called with sinon.useFakeTimers?

我将 sinonfake timers 一起使用,我想检查是否使用特定的超时 ID 调用了 clearTimeout

var clock = sinon.useFakeTimers();
functionUnderTest();
// How can I know if functionUnderTest cleared a specific timeout?

clock对象有sinon的定时器相关函数,你可以spy它们然后断言它们被调用了

var clock = sinon.useFakeTimers();
sinon.spy(clock, "clearTimeout");

functionUnderTest();

sinon.assert.calledWith(clock.clearTimeout, 42);