我正在尝试使用 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;
(在我将 ember 加载到帮助程序中之前,紧随其后)
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