TypeError: undefined не является конструктором при тестировании функции, которая вызывает другую функцию в контроллере diff - PullRequest
0 голосов
/ 19 октября 2018

Довольно новый для этого

Мой контроллер, который я хочу проверить, находится ниже.

'use strict';
myApp.controller('myModalCtrl',
   ['$scope', '$uibModalInstance', 'title',
 function ($scope,  $uibModalInstance, title){
     $scope.title = title
     $scope.updateFiles = function () {
         $scope.updateFile(); --> updateFile is in parent controller 
             $uibModalInstance.close();
        };
        $scope.cancel = function () {
         $uibModalInstance.close();
        };
    }]);

Файл теста выглядит следующим образом

 'use strict';
  describe('Test Controller', function () {

var _myModalCtrl, _title, _scope;
var _modalInstance;

beforeEach(function () {
    module('myApp');

inject(function ($controller, $rootScope) {
        _scope = $rootScope.$new();
        _modalInstance = {close: function () {               
        }};
        _title = {
        };
        _myModalCtrl = $controller('myModalCtrl',
            {
                $scope: _scope,
                $uibModalInstance: _modalInstance,
                title: _title,
            });
    });
});

describe('Functions', function() {
    it('Submit', function () {  
        _scope.updateFiles(); --> ** This is failing **
    });

    it('Cancel', function () {
        _scope.cancel();
    });
});

});

Я просто хочу иметь возможность протестировать оба updateFiles и убедиться, что updateFile запущен, и отменить метод, отменить, он работает нормально.Это связано с тем, что область видимости различна, и контроллеры, и метод File обновления находятся в другом файле?

Я получаю сообщение об ошибке "TypeError: undefined не является конструктором (оценивается '$ scope.updateFile)() ') in ... / myControl.js

Спасибо за помощь.

...