javascript - 如何注册组件以使用 ember-qunit 进行测试?

标签 javascript ember.js ember-qunit

我正在尝试使用 ember-qunit 进行测试。 我这里有这个伪代码:( http://jsbin.com/zejacati/5/edit )

Ember.Foo = Ember.Namespace.create();

Ember.Foo.FooComponent = Ember.Component.extend({
  template: Ember.Handlebars.compile('<h2>Hello!</h2>')
});

Ember.Handlebars.helper('foo-component', Ember.Foo.FooComponent);

window.App = Ember.Application.create();

window.App.setupForTesting();
emq.globalize();
setResolver(Ember.DefaultResolver.create({
  namespace: window.App
}));

moduleForComponent('foo-component', 'Foo component testing');

test('First true test', function () {
  var component = this.subject();
  ok(true, true);
});

Ember 对我说:

Setup failed on First true test: Attempting to register an unknown factory: component:foo-component

我认为解析器有问题,但我不知道如何解决它。

有什么想法吗?

谢谢。

最佳答案

我认为您的问题可能是因为您将 FooComponent 放在 Ember 对象上而不是 App 对象上。

而不是:

Ember.Foo.FooComponent = Ember.Component.extend({
  template: Ember.Handlebars.compile('<h2>Hello!</h2>')
});

试试这个:

App.FooComponent = Ember.Component.extend({
  template: Ember.Handlebars.compile('<h2>Hello!</h2>')
});

...因为这是 Ember 的默认解析器查找 component:foo-component 的地方。

我不熟悉 Ember.Namespace (以前没有使用过它),因此也不熟悉它将如何影响此测试 - 因此首先尝试这个版本,不带任何命名空间,然后尝试恢复命名空间。

关于javascript - 如何注册组件以使用 ember-qunit 进行测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24921739/

相关文章:

ember.js - Ember 和 TinyMCE

javascript - 具有 hasMany 关系的模型上的 Ember.js 单元测试计算属性会产生 TypeError

javascript - jQuery-在用户指定数量后添加新元素

javascript - 使用 jQuery 或 JS 在模糊时显示 Div 中表单的总计

javascript - 点击后退按钮后未执行 JS 代码

ember.js - DS.Model url 在 ember.js 中不起作用

ember.js - 无法在组件测试中找到部分内容

ember-cli - 在 Ember-cli 中为 Qunit 设置全局超时

Javascript 函数的输出是 Rails 函数的输入 - 依赖关系

javascript - Amazon Fire Phone user_agent 字符串是什么?