如何监视预期异步的函数?

时间:2013-07-27 13:01:58

标签: javascript asynchronous jasmine

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

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

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中的自定义事件?

0 个答案:

没有答案