나는 카르마와 재스민으로 테스트하는 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
에서 반환하면 정의되지 않음이 반환되고 은으로 인해 실패합니다.
예상되는 스파이 undoAction이 호출되지 않았습니다.
무슨 일이 벌어지고 있는지에 대한 아이디어가 있습니까? spyOn
이 코드에 영향을주는 것 같습니다. ??