1

我正在尝试使用 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);
});

余烬对我说:

第一次真实测试设置失败:尝试注册未知工厂:component:foo-component

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

有任何想法吗?

谢谢你。

4

1 回答 1

1

我认为您的问题可能是因为您放置FooComponentEmber对象而不是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(以前没有使用过),因此也不熟悉它会如何影响这个测试 - 所以首先尝试这个版本,没有任何命名空间,然后尝试重新使用命名空间。

于 2014-07-24T02:19:08.413 回答