$timeout が呼び出されていないことを確認できるように、$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 をオブジェクトではなく関数として使用していることを明確に指定しました。