刚刚从1.3升级到jasmine 2.0 rc5,现在我使用waits()
的所有测试都被破坏了,因为waits()
和waitsFor()
函数未定义。我似乎在网上找不到任何引用,有人知道什么是新的API来代替wait()吗?
异步调用的用法语法发生了变化。你可以很容易地在文件中看到这两个版本之间的差异:
Jasmine 1.3异步支持使用waitsFor()
和run()
函数。
根据Jasmine 2.0异步支持,这些功能已从库中删除。然而,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
)。
使用茉莉花。DEFAULT_TIMEOUT_INTERVAL=5000
请参阅以下Jasmine文档的URL。。。http://jasmine.github.io/2.0/introduction.html
第节是文档中的"异步支持"。