Оконная функция Jasmine SpyOn в приложении AngularJS
Я создал функцию при изменении маршрута:
window.intercom = function(action, msg) {
return window.Intercom(action, msg);
};
Я пытаюсь шпионить за этой функцией, но не понимаю как. Я последовал совету в этом посте.
Если я использую это:
beforeEach(inject(function($compile, $rootScope, $q, _$location_, $routeParams) {
element = angular.element("<add-box></add-box>");
$compile(element)($rootScope);
}));
it("should cancel adding a box!", function() {
spyOn(window, 'intercom')
});
Я получаю ошибку:
intercom() method does not exist
Итак, я попробовал это:
it("should cancel adding a box!", function() {
var intercom = jasmine.createSpy();
});
Который говорит:
TypeError: 'undefined' is not a function (evaluating 'window.intercom('hide')')
Как я могу заставить это работать? Я уверен, что это просто, я просто новичок в Жасмин.
1 ответ
Решение
Как насчет в beforeEach или лучше в функции before вы делаете что-то вроде этого:
window.intercom = jasmine.createSpy();
Это даст вам функцию внутренней связи в окне.