我的项目包含一个使用异步XMLHttpRequest加载数据的外部库。加载时间可在200ms至10000ms之间变化。
我希望Jasmine只在该库加载完成后才能执行测试。
我对Jasmine中的Async测试有点困惑。我想只有一个超时会在所有测试之前等待,然后同步执行每个测试。
有可能吗?我有类似下面的内容,但它不起作用。
describe("External library cartovista", function() {
beforeAll(function(done){
var cartovista = window.cartovista;
done();
}, 10000);
it("cartovista should be loaded", function(done) {
expect(cartovista).toBeDefined();
done();
});
it("cartovista component and data working as wanted", function(done) {
//an example of testing over the data
var data = cartovista.data[0]
expect(cartovista.afunction(data)).toBe(true);
done();
});
//etc...
});
编辑:我必须提到我想用真实数据执行测试。
答案 0 :(得分:0)
我找到了一种方法来做我想做的事情。在我的问题中,我非常接近正确答案。
请注意,DEFAULT_TIMEOUT_INTERVAL
应大于setTimeout
间隔
describe("External library cartovista", function() {
jasmine.DEFAULT_TIMEOUT_INTERVAL = 11000;
var cartovista;
beforeAll(function(done){
setTimeout(function() {
cartovista = window.cartovista;
done();
}, 10000);
});
it("cartovista should be loaded", function() {
expect(cartovista).toBeDefined();
});
it("cartovista component and data working as wanted", function() {
//an example of testing over the data
var data = cartovista.data[0]
expect(cartovista.afunction(data)).toBe(true);
});
//etc...
});