Javascript Jasmine 2.0 async Beforeach不等待async完成

Javascript Jasmine 2.0 async Beforeach不等待async完成,javascript,asynchronous,jasmine,require,Javascript,Asynchronous,Jasmine,Require,我正在使用Jasmine 2.0和require.js。当我将异步代码放入beforeach函数中时,我无法使异步测试正常工作。在异步调用完成之前,我的it语句仍在运行 这是我的规格: describe("App Model :: ", function() { var AppModel; beforeEach(function(done) { require(['models/appModel'], function(AppModel) {

我正在使用Jasmine 2.0和require.js。当我将异步代码放入beforeach函数中时,我无法使异步测试正常工作。在异步调用完成之前,我的it语句仍在运行

这是我的规格:

describe("App Model :: ", function() {
    var AppModel;

    beforeEach(function(done) {
        require(['models/appModel'], function(AppModel) {
            AppModel = AppModel;
            done();
        });
    });

    // THIS SPEC FAILS AND RUNS BEFORE ASYNC CALL
    it("should exist", function(done) {
        this.appModel = new AppModel()
        expect(this.appModel).toBeDefined();
        done();
    });

    // THIS SPEC PASSES
    it("should still exist", function(done) {
        require(['models/appModel'], function(AppModel) {
            this.appModel2 = new AppModel()
            expect(this.appModel2).toBeDefined();
            done();
        });
    });

});
第一个规范失败,但第二个规范通过,当我在
it
中包含异步时

理想情况下,我希望每个
beforeach
async都能工作,而不是枯燥乏味地将每个require复制到单独的it语句中


任何提示?

本地require var应该有另一个名称包装到外部范围。此外,在“it”中,您不需要完成,它仅在异步部分。像这样的东西一定有用:

describe("App Model :: ", function() {
  var AppModel;

  beforeEach(function(done) {
    require(['models/appModel'], function(_AppModel) {
        AppModel = _AppModel;
        done();
    });
  });

  it("should exist", function() {
    var appModel = new AppModel()
    expect(appModel).toBeDefined();
  });

});

啊,是的!非常感谢。我想我不需要在“it”中使用异步,但我正在尝试一切。