jasmine 如何与异步测试一起工作

How jasmine works with Async Test

全部:

我是 Jasmine 测试的新手,关于异步测试我想知道的一个问题是:

谁能简单解释一下 Jasmine 是如何知道内部有一个 done() 函数调用并等待完成的?

例如,如果我在 beforeEach 中放置一些异步调用:

var flag = false;
beforeEach(function(done){
    setTimeout(function(){
        // some task here
        flag = true;
        done();
    }, 3000)
})

it("Should be true if the async call has completed", function () {
    expect(flag).toEqual(true);
});

Jasmine 如何知道应该让 it 规范测试等待?

谢谢

Jasmine 知道这一点,因为您提供了 done 参数。如果您没有异步调用,则应省略 done 参数。

beforeEach(function(){
    nonAsyncMethod();
})