В моем контроллере 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
. Есть ли способ издеваться или заглушить метод, вызываемый при инициализации контроллера? Каковы наилучшие методы для этого?
Вы можете проверить, что объекты области, измененные в $scope.init
имеют правильные значения после инициализации контроллера. Вы даже можете попытаться изменить значения этих объектов и перезапустить метод init, и проверить, что все соответствует потом
Вы можете проверить:
состояние контроллера, как ожидается, после его "инициализации",
убедитесь, что вызывается loadnames и loaddata (jasmine spyOn + toHaveBeenCalled)
играть с обещающим объектом, издеваясь над реакциями loadnames/loaddata, чтобы проверить ваше поведение в непредвиденных условиях