AngularJS - модульное тестирование метода контроллера, который вызывается при инициализации

0

В моем контроллере AngularJS у меня есть метод $scope.init который $scope.init при инициализации контроллера. $scope.init вызывает $scope.loadData и $scope.loadNames, каждый из которых $scope.loadNames HTTP GET Request API для получения некоторых данных.

Я написал некоторые модульные тесты, используя $httpBackend чтобы издеваться над ответами API и проверить $scope.loadData и $scope.loadNames. Те работают нормально, но что-то, что я не могу проверить, это метод $scope.init. Есть ли способ издеваться или заглушить метод, вызываемый при инициализации контроллера? Каковы наилучшие методы для этого?

Теги:
unit-testing
karma-jasmine
jasmine
angularjs-controller

2 ответа

0

Вы можете проверить, что объекты области, измененные в $scope.init имеют правильные значения после инициализации контроллера. Вы даже можете попытаться изменить значения этих объектов и перезапустить метод init, и проверить, что все соответствует потом

0

Вы можете проверить:

  • состояние контроллера, как ожидается, после его "инициализации",

  • убедитесь, что вызывается loadnames и loaddata (jasmine spyOn + toHaveBeenCalled)

  • играть с обещающим объектом, издеваясь над реакциями loadnames/loaddata, чтобы проверить ваше поведение в непредвиденных условиях

Ещё вопросы

Сообщество Overcoder
Наверх
Меню