2015-04-03 22 views
10

Ben tüm hizmetleri içine mağazayı enjekte bu başlatıcı vardır:Ünite testlerinde mağaza bir Ember.Service'ye nasıl enjekte edilir? Benim app

export function initialize(container, application) { 
    application.inject('service', 'store', 'store:main'); 
} 

export default { 
    name: 'inject-store-in-services', 
    initialize: initialize 
}; 

Sorunum birim testleri çalıştırdığınızda, hizmetler store özelliği yok olmasıdır. Yani benim sorum: başlatıcımın yaptığı şeyi elde etmenin bir yolu var mı, yoksa bir birim test bağlamında mı? Eğer başka bir şey aramak eğer 'mağaza belirtmeniz gerekir böylece

Ember.Service.extend({ 
    store: Ember.inject.service() 
}); 

Bu özellik adından hizmet adı alır: Ember son sürümlerinde

+0

Mağazayı atarken, bir birim testi, hizmet kapsamı dışında kalmamalıdır. – Kingpin2k

+0

@ Kingpin2k Hizmetim, aslında, uygulamada her yerde tekrarlamak istemediğim modeller üzerinde önceden tanımlanmış işlemler etrafında sadece bir sarıcıdır. Doğru özellikleri ayarlanmış bir DS.Model döndürdüğünü test etmem gerekiyor. Mağazayı alay etmek sadece alaylarımı test eder ... –

+0

Testlerinizi çalıştırdığınızda işe yaramıyor .. Uygulamanız normal şekilde çalıştığında (test modunda değil) çalışıyor mu? – jmurphyau

cevap

13

Eğer örneğin bir hizmet olarak mağaza enjekte '.. örn .:

Ember.Service.extend({ 
    banana: Ember.inject.service('store') 
}); 
+0

Hizmetlerin enjekte edilmesi için API'yi biliyordum, ancak mağazada çalıştığını düşünmedim. Teşekkürler! –

+0

Mağazanın servis olarak son zamanlarda eklendiğini düşünüyorum. – knownasilya

+6

Benim için, "Bilinmeyen bir enjeksiyon enjekte etmeye çalışıyorum:" service: store ". –

İlgili konular