Javascript Jasmine 2.0 async Beforeach不等待async完成
我正在使用Jasmine 2.0和require.js。当我将异步代码放入beforeach函数中时,我无法使异步测试正常工作。在异步调用完成之前,我的it语句仍在运行 这是我的规格: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) {
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”中使用异步,但我正在尝试一切。