2015-04-25 2 views
0

Я создал функцию, поэтому при изменении маршрута:Жасмин SpyOn Окно Функция в AngularJS Применение

window.intercom = function(action, msg) { 
    return window.Intercom(action, msg); 
}; 

Am пытается подсмотреть эту функцию, но не понимаю, как. Я последовал совету в this SO post.

Если я использую это:

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')') 

Как я могу заставить это работать? Я уверен, что это просто, я просто новичок в Жасмине.

+0

Дополнительный контекст пожалуйста. Отправьте фактический тестовый код. –

+0

@RobertMoskal Не так много в тестах на данный момент, поскольку я просто пытался заставить их работать. Сделали некоторые изменения. – simonmorley

ответ

0

Как насчет в beforeEach или лучше в перед функцией вы делаете что-то вроде этого:

window.intercom = jasmine.createSpy(); 

Это будет получить вам функцию интеркома на окне.

+0

Спасибо. Я пробовал это раньше, но, кажется, работает в блоке preeach. – simonmorley

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

  • Нет связанных вопросов^_^