Я пытаюсь шпионить за $ timeout, чтобы я мог убедиться, что он не был вызван. В частности, мой код продукции (см ниже) вызывает $ таймаут как функцию, а не объект:Как вы смотрите на тайм-аут AngularJS с Жасмин?
$timeout(function() { ... })
и не
$timeout.cancel() // for instance
Жасмин, однако, требует объект, который будет шпионить, как это :
spyOn(someObject, '$timeout')
Я не знаю, какой был бы «некоторый объект».
Я использую Угловые издевки, если это имеет значение.
Edit: Соответствующий код продукции Пытаюсь тест выглядит следующим образом:
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
}
В конкретном сценарии тестирования я пытаюсь утверждать, что $ таймаут никогда не называли.
Редактировать 2: Четко указано, что я использую $ timeout как функцию, а не объект.
Вы можете разместить пример кода, который вы тестируете? –
@DavinTryon сделано –