我是用茉莉花2.0和require.js。我不能当我把异步code在beforeEach功能异步测试正常工作。我这语句是异步调用完成之前仍在运行。
I am using Jasmine 2.0 and require.js. I cannot get the async tests to work properly when I put the async code in a beforeEach function. My it statement is still running before the async call finishes.
下面是我的规格:
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(); }); }); });第一规格失败,但第二个规格的推移,当我包括在是异步。
在理想情况下,我想在 beforeEach 异步工作而不是不干燥和复制均需要到各个它的声明。
Ideally, I'd like the beforeEach async to work rather than being not DRY and copying each require into the individual it statements.
任何提示?
推荐答案本地需要VAR应该有另外一个名字被包装的范围之外。此外,在它你不需要做的,它仅在异步部分。像这样的东西必须工作:
Local require var should have another name to be wrapped to the outside scope. Also in the "it" you do not require done, it is only in the async part. Something like this must work:
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(); }); });更多推荐
茉莉花2.0异步beforeEach不等待异步完成
发布评论