жасмин Ожидалось, что шпионские ссылки будут вызваны ошибкой

Мне трудно понять функцию jasmine spyOn. Я написал простую функцию и проверил, был ли вызван мой метод:

function myView() {
  myLinks();
}

Вот мои тесты:

describe('#myView', function() {
    it('updates link', function() {
      var spyEvent = spyOn(window, 'myLinks');
      expect(spyEvent).toHaveBeenCalled();
    });
  });

Это возвращает следующую ошибку:

Expected spy myLinks to have been called

Что я здесь делаю неправильно?


person Micheal    schedule 27.10.2013    source источник


Ответы (1)


Вам нужно вызвать функцию myView(), чтобы были вызваны myLinks().

function myLinks(){
    //some tasks
}    

function myView() {
  myLinks();
}

Эти две функции выше объявлены в объекте window, затем вы создаете объект-шпион, указывающий на окно.

describe('#myView', function() {
    myView();//Call the method so the myLinks was called too
    it('updates link', function() {
      var spyEvent = spyOn(window, 'myLinks');
      expect(spyEvent).toHaveBeenCalled();
    });
  });
person Claudio Santos    schedule 28.10.2013