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

Mic*_*eal 2 javascript jquery jasmine jasmine-jquery

我很难理解茉莉花的spyOn功能.我写了一个简单的函数并测试我的方法是否被调用:

function myView() {
  myLinks();
}
Run Code Online (Sandbox Code Playgroud)

这是我的测试:

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

这会返回以下故障:

Expected spy myLinks to have been called
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?

Cla*_*tos 5

你需要调用myView()函数以便myLinks()调用它.

function myLinks(){
    //some tasks
}    

function myView() {
  myLinks();
}
Run Code Online (Sandbox Code Playgroud)

上面的这两个函数在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();
    });
  });
Run Code Online (Sandbox Code Playgroud)