カルマとジャスミンでテストしているAngular 1.6.6アプリケーションがあります。スパイオン時に角度サービスが未定義になる
$scope.undo = function() {
return $scope.isUndoDisabled() || $scope.undoAction();
};
$scope.isUndoDisabled = function() {
return HistoryService.isUndoDisabled();
};
私は以下のスペックでそれをテストされています:
it('undoAction should not be called with default settings', function() {
var $scope = {};
var controller = $controller('PaintController', { $scope: $scope });
spyOn($scope, 'undoAction');
//spyOn(HistoryService, 'isUndoDisabled');
$scope.undo();
expect($scope.undoAction).not.toHaveBeenCalled();
});
そしてテストに合格ですが、私はHistoryServiceのspyOnのコメントを解除したときに、コントローラから、このコードを考えると
、HistoryService.isUndoDisabled()
から$scope.isUndoDisabled
までは定義されていません。その結果、はに失敗します:
spy undoActionが呼び出されていないと予想されます。
何が起こっているかについてのアイデアですか? spyOn
がコードに影響を与えているようですね??