我正在尝试使用ember.js运行我常用的jasmine-node测试,因为ember需要加载把手我也包含了该库。
但是出于某种原因,当ember点击这段代码时
window.Handlebars
我未定义。
以下是我在茉莉花测试中加载jquery / handlebars / ember的方法
var jsdom = require("jsdom");
window = jsdom.jsdom("<html></html");
global.window = window;
require("path/to/jquery");
require("path/to/handlebars-1.0.0.beta.6");
require("path/to/ember-1.0.pre");
describe("test demo", function() {
it("should not blow up when running this", function() {
expect(2).toBe(2);
});
});
我可以很容易地将其破解到handlebars.js文件的底部,但我想了解还有什么办法可以避免为了测试而直接修改这个库。
window.Handlebars = Handlebars;
(在我将helper加载到帮助程序之前,此行后面是
)global.Handlebars = window.Handlebars;
**更新**
我对ember-data.js也有同样的问题
似乎设置window.Foo不是 - 但实际上我需要设置global.Foo(有关此方法的任何想法吗?)
(function() {
window.DS = Ember.Namespace.create({
CURRENT_API_REVISION: 4
});
})();
global.DS = window.DS; //I had to add this to make DS available