我正在尝试为 编写单元测试setInterval()
,但我不确定如何监视fetchState()
.
主代码.js:
var pollStatus = function(interval, killPolling) {
// Clear Interval if function is called again
if (killPolling || StatusPollObj) {
clearInterval(StatusPollObj);
StatusPollObj = false;
}
// Call once before setInterval Starts
fetchState();
StatusPollObj = setInterval(function() {
if(somecondtion_to_check_inactivity) return;
fetchState();
}, interval);
};
规范.js
it("state.json setInterval Call",function() {
this.clock = sinon.useFakeTimers();
var helper = new state.HELPER();
var spy = sinon.spy(helper, "fetchState");
helper.pollStatus('80000', false);
expect(spy.called).to.be.true;
this.clock.tick(80000);
expect(spy.called).to.be.true;
});