2014-11-14 8 views
1

У меня есть метод под названием $scope.openGroupInbox(), который делает $scope.init() и другие вещи. Я хочу проверить, был ли вызван $scope.init(). Так я это делаю:

it('call init', function() { 
    $scope.openGroupInbox(3); 
    expect($scope.init(3)).toHaveBeenCalled(); 
}); 

ответ

5

Перед тем, как вызвать .toHaveBeenCalled() функцию в тесте. Вам необходимо зарегистрировать шпиона, который будет отслеживать звонки, сделанные в функцию $scope.init().

Вы можете сделать это в своем beforeEach, как показано ниже.

beforeEach(function() { 
    spyOn($scope, 'init'); 
}); 

Затем, когда ваш тест работает, вы должны правильно получить информацию или не было успешно называется функцией $scope.init().

Вы также должны изменить ваши expect либо:

expect($scope.init).toHaveBeenCalled(); 

или

expect($scope.init).toHaveBeenCalledWith(3); 

Я надеюсь, что это помогает.

Смежные вопросы