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

Mot*_*tti 3 javascript unit-testing sinon cleartimeout

我使用的是sinon伪造的计时器,我要检查,如果clearTimeout被称为具有特定的超时-ID.

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

Mot*_*tti 9

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

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

functionUnderTest();

sinon.assert.calledWith(clock.clearTimeout, 42);
Run Code Online (Sandbox Code Playgroud)