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