Как зарегистрировать компонент для тестирования с помощью 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);
});

и Эмбер сказал мне:

Ошибка установки при первом истинном тесте: попытка зарегистрировать неизвестную фабрику: component:foo-component

Я думаю, что проблема в решателе, но я не знаю, как это исправить.

Есть идеи?

Спасибо.

1 ответ

Решение

Я думаю, что ваша проблема может быть потому, что вы положили 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 (не использовал его раньше), и, следовательно, также, как это повлияет на этот тест - поэтому сначала попробуйте эту версию, без какого-либо пространства имен, а затем попытайтесь снова обработать пространство имен.

Другие вопросы по тегам