Jasmine - 等待异步库完全加载,然后再执行测试

Jasmine - Wait Async library to load completely before performing tests

本文关键字:然后 执行 测试 加载 等待 异步 Jasmine      更新时间:2023-09-26

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

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

见茉莉花文档