在Jasmine中使用createSpy来测试模块内部的setInterval

时间:2015-04-21 08:49:54

标签: javascript node.js unit-testing jasmine

在nodejs类中,我有一个内部函数called _timerEvent,它将从setInterval中调用。

调用有两个方法,startInterval和stopInterval,第一个方法调用

this._timerForInterval = setInterval(this._timerEvent, this._interval * 1000);

调用stopIntervall调用

clearInterval(this._timerForInterval);

现在我想用jasmine进行测试,如果调用了this._timerEvent

var spyTimerEvent = null;
            controller._timerEvent = jasmine.createSpy('spyTimerEvent');
            jasmine.clock().install();

            controller.setInterval(60);
            controller.startInterval();
            expect(spyTimerEvent).not.toHaveBeenCalled();

            jasmine.Clock().tick(61);

            expect(spyTimerEvent).toHaveBeenCalled();

            jasmine.clock().uninstall();

我收到错误:"Expected a spy, but got null"

我尝试了几种方法,但我认为如果使用jasmine.clock,我就没有这个概念。

有人能以正确的方式暗示我吗?

0 个答案:

没有答案