0

我有这个函数,我希望在调用 jasmine 测试脚本 5 秒后调用它。

我尝试了茉莉花文档中描述的传统方式:

describe("Tests:", function(){
  it("Expects slowFunction() will be called", function(){
    var slowFunctionSpy = spyOn(window, 'slowFunction').andCallThrough();
    init();
    waitsFor(function() {      
      expect(slowFunctionSpy).toHaveBeenCalled();      
    }, "Call Not Answered by Remote End.", 10000);
  });    
});

init()函数触发一连串事件,即它创建了一个函数,最终使其slowFunction()被调用。我省略了 run() 方法,因为我认为如果waitsFor()测试expect()应该true通过,对吗?

我也尝试过jasmine.async但测试仍然失败。

describe("Tests:", function(){

  var foo=false;
  var async = new AsyncSpec(this);

  async.beforeEach(function(done){
    setTimeout(function(done){
      foo = true;
      init();
      done();
    }, 10000);    
  });

  it("Expects slowFunction() will be called", function(){
    var slowFunctionSpy = spyOn(window, 'slowFunction').andCallThrough();
    expect(slowFunctionSpy).toHaveBeenCalled();      
    });
});

可能有一些我不清楚的地方。请帮助清除我的想法?

更新: slowFunction()是一个自定义事件,根据我的谷歌搜索结果,我认为 spyOn() 不适用于事件。所以新的问题:

如何监视 Jasmine 中的自定义事件?

4

0 回答 0