2

我很难理解 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

我在这里做错了什么?

4

1 回答 1

5

您需要调用该myView()函数,以便调用该函数myLinks()

function myLinks(){
    //some tasks
}    

function myView() {
  myLinks();
}

上面这两个函数是在window对象中声明的,然后你创建一个指向 window 的 spy 对象。

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();
    });
  });
于 2013-10-28T00:08:36.367 回答