在异步测试的上下文中调用 'done' 做什么?

What does calling 'done' do in the context of asynchronous testing?

中有如下代码:

describe("ModuleName", function() {
    var mod;

    beforeAll(function (done) {
        // This loads your module and saves it in `mod`.
        require(['../js/app/ModuleName'], function(mod_) {
            mod = _mod;
            done();
        });
    });

    it("exists", function(){
        expect(mod).toBeDefined();
        expect(mod.init).toBeDefined();
    });
});

他们将函数 done() 传递到组合中。他们为什么要用这个?

所以当你做一些异步的事情时,比如调用 require(),你可以在它完成时发出信号。否则测试框架将无法知道您何时完成异步操作。

done() 的目的是让您可以在异步操作完成时向测试框架发出指示。