2014-07-23 47 views
1

我正在嘗試使用ember-qunit進行測試。 我有這樣的僞代碼在這裏:(http://jsbin.com/zejacati/5/edit如何使用ember-qunit註冊組件進行測試?

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(以前沒有使用過它),也因此而它將如何影響這個測試 - 所以先試試這個版本中,沒有任何名稱空間,然後嘗試去解決的命名空間回到