2015-08-20 4 views
0

я выполнил следующую строкуКак я могу решить следующую ошибку в карме с угловым

expect($rootScope.$broadcast).toHaveBeenCalledWith("dateApply"); 

, но я получил следующую ошибки:

TypeError: 'undefined' is not an object (evaluating'c.$broadcast("$locationChangeStart",b,a,k.$$state,f).defaultPrevented')

Пожалуйста, помогите мне решить эту ошибку.

ответ

0

сначала определил rootScope наверху.

затем вводят его в beforeEach как этот

inject(function($injector) { 
    rootScope = $injector.get('$rootScope'); 
}); 

Затем в тесте

expect(rootScope.$broadcast).toHaveBeenCalledWith("dateApply"); 

Если вы делаете минификация, убедитесь, что rootScope не переименовывается.

+0

Я пробовал вышеуказанный код, но все же получил ошибку «Ошибка: ожидал шпион, но получил функцию»; –

+0

вам нужно поставить шпиона на 'rootScope. $ Broadcast', прежде чем вы сможете использовать' toHaveBeenCalledWith'. Читайте документы 'spyOn'. – atinder

+0

ok..but теперь я пробовал вот так, но этот тоже получал ошибку spyOn (rootScope, '$ broadcast'). AndCallThrough(); –

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