jasmine期望的间谍myLinks被称为错误

时间:2013-10-27 23:38:05

标签: javascript jquery jasmine jasmine-jquery

我很难理解茉莉花的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

我在这里做错了什么?

1 个答案:

答案 0 :(得分:5)

您需要调用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();
    });
  });