我试图监视 $timeout 以便我可以验证它没有被调用。具体来说,我的生产代码(见下文)将 $timeout 作为函数而不是对象调用:
$timeout(function() { ... })
并不是
$timeout.cancel() // for instance
然而,Jasmine 需要监视一个对象,如下所示:
spyOn(someObject, '$timeout')
我不知道'someObject'会是什么。
我正在使用 Angular 模拟,如果这有什么不同的话。
编辑:我正在尝试测试的相关生产代码如下所示:
EventHandler.prototype._updateDurationInOneSecondOn = function (call) {
var _this = this;
var _updateDurationPromise = this._$timeout(function () {
call.duration = new Date().getTime() - call.startTime;
_this._updateDurationInOneSecondOn(call);
}, 1000);
// ... more irrelevant code
}
在特定的测试场景中,我试图断言 $timeout 从未被调用过。
编辑 2:明确指定我使用 $timeout 作为函数,而不是对象。