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

Думаю проблема в резолвере, но не знаю как исправить.

Есть идеи?

Спасибо.


person Dmitry Paloskin    schedule 23.07.2014    source источник


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

person bguiz    schedule 24.07.2014