3

我正在尝试使用 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
4

0 回答 0