gpt4 book ai didi

javascript - Jasmine - 在执行测试之前等待异步库完全加载

转载 作者:行者123 更新时间:2023-11-28 06:20:33 27 4
gpt4 key购买 nike

我的项目包含一个使用异步 XMLHttpRequest 加载数据的外部库。加载时间可以在 200 毫秒到 10000 毫秒之间变化。

我希望 Jasmine 仅在该库加载完成后才执行测试。

我对 Jasmine 中的异步测试有点困惑。我希望只有一个超时,在所有测试之前等待,然后同步执行每个测试。

这可能吗?我有类似下面的东西,但它不起作用。

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...
});

编辑:我必须提到我想用真实数据执行测试。

最佳答案

我找到了一种方法来完成我想做的事情。我的问题已经非常接近正确答案了。

请注意,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...
});

See Jasmine doc

关于javascript - Jasmine - 在执行测试之前等待异步库完全加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35580352/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com