Jasmine - 等待异步库完全加载,然后再执行测试
Jasmine - Wait Async library to load completely before performing tests
我的项目包含一个使用异步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...
});
见茉莉花文档
相关文章:
- jQuery-等待此元素,然后执行1次
- 方法来查看jQuery文件是否已完全加载,然后执行与其相关的函数
- 识别javascript,然后执行“;包括“;
- 首先验证表单,然后执行 Ajax 调用
- Phantomjs 检查响应标头,然后执行某些操作
- 等待多个条件,然后执行函数
- jQuery children().fadeOut() 然后执行单个函数
- jQuery是否可以用JavaScript替换文本,然后执行
- 等待几个 ajax 调用完成,然后执行某些操作
- 执行 C# 事件处理程序,然后执行该 js 函数
- JavaScript循环等待一些函数返回,然后执行下一个循环
- AG-Grid 将列标题设置为复选框,然后执行全选或取消全选列,而不是仅组
- 重新加载仅包含脚本的 DIV,然后执行脚本
- 等待几秒钟,让下载完成,然后执行PHP代码
- 使用JQuery在元素中查找文本,然后执行函数
- jQuery:检查元素是否有类,然后执行函数
- Node.js:执行多个异步操作的最佳方式,然后执行其他操作
- 将页面重定向到另一个页面,然后执行jQuery操作
- 检查是否选中任何单选按钮,然后执行代码(多组按钮)
- 加载页面,然后执行javascript