我有这个函数,我希望在调用 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 中的自定义事件?