我使用 jasmine 运行并等待测试异步操作。一切正常,但我不太确定幕后发生了什么。
茉莉花文档说明了以下示例,我在其中添加了三个日志语句。
describe("Asynchronous specs", function() {
var value, flag;
it("should support async execution of test preparation and exepectations", function() {
runs(function() {
flag = false;
value = 0;
setTimeout(function() {
flag = true;
}, 500);
});
waitsFor(function() {
value++;
if(flag) {
console.log("A");
}
return flag;
}, "The Value should be incremented", 750);
console.log("B");
runs(function() {
console.log("C");
expect(value).toBeGreaterThan(0);
});
});
});
});
第一个对我runs
来说waitsFor
非常清楚。Runs
启动异步操作并waitsFor
等待条件。
但是我不明白为什么第二个runs
直到waitsFor
完成才开始。这waitsFor
不是阻塞调用。
我的猜测是waitsFor
隐式阻止任何后续runs
调用,直到它完成。是这样吗?
我的证据是 console.log 语句输出:
BAC
但如果waitsFor
真的会阻止它应该是
美国广播公司