刚从 1.3 升级到 jasmine 2.0 rc5 ,现在我使用waits()
的所有测试都被破坏,因为waits()
和{{1函数未定义。我似乎无法在网上任何地方找到任何参考,是否有人知道什么是替换wait()的新API?
答案 0 :(得分:14)
嗯,异步调用的使用语法发生了变化。 您可以在其文档中轻松查看两个版本之间的差异:
Jasmine 1.3 Asynchronous support使用waitsFor()
和run()
个函数。
根据Jasmine 2.0 Asynchronous support,这些功能已从图书馆中消失。但是,Jasmine 2.0为原始beforeEach()
,afterEach()
和it()
函数添加了异步支持。传递给这些函数的回调函数现在可以使用一个参数来指示规范是否可以运行。
然后,当您达到运行测试的必要条件时(无论何时完成异步作业),您只需致电done()
。所有的魔法都发生了;)
来自文档:
describe("Asynchronous specs", function() {
var value;
beforeEach(function(done) {
setTimeout(function() {
value = 0;
done();
}, 1);
});
it("should support async execution of test preparation and expectations", function(done) {
value++;
expect(value).toBeGreaterThan(0);
done();
});
});
上面的it()
规范只会在setTimeout()
调用之后运行,因为done()
会在那里调用。请注意it()
回调采用参数(done
)。
答案 1 :(得分:0)
使用jasmine.DEFAULT_TIMEOUT_INTERVAL = 5000
请参阅以下网址获取Jasmine文档... http://jasmine.github.io/2.0/introduction.html
部分是"异步支持"在文档中。