У меня есть метод, определенный на контроллере, и я пытаюсь проверить, было ли это вызвано. Я могу проверить, что метод определен, но когда я пытаюсь проверить, был ли он вызван, он жалуется, что ожидал, что шпион будет вызван.Жасмин не сообщил, что функция углового контроллера вызвана
Вот мой контроллер:
myControllers.controller 'MyCtrl', ($scope) ->
this.init =() -> doStuff()
this.init()
Вот мой набор тестов:
describe "testing myCtrl",() ->
beforeEach "myControllers"
$controller = {}
$scope = {}
beforeEach inject (_$controller_,$rootScope) ->
$controller = _$controller_
$scope = $rootScope.$new()
describe "MyCtrl",() ->
beforeEach() ->
MyCtrl=$controller('MyCtrl',{$scope:$scope})
it "should be defined",() -> # passes
expect(MyCtrl).toBeDefined()
it "should define #init",() -> # passes
expect(angular.isFunction(MyCtrl.init)).toBe true
it "should call #init",() -> # fails
spyOn MyCtrl, 'init'
expect(MyCtrl.init).toHaveBeenCalled()
Последние утверждения приводит к Error: Ожидаемое шпионской INIT быть вызванным.
Как его структурировать? Должен ли я создать экземпляр контроллера в утверждении или создать шпион в beforeEach? –