2014-09-06 23 views
5

nolu 'createRecord' özelliği okunamıyor store'un, Ember sınamalarında, bir ObjectController bağlamında veya herhangi bir birim sınamada kullanılabilir olmadığı anlaşılıyor. Benim birim testi:Ember Sınaması:

`import {test, moduleFor} from "ember-qunit"` 
`import DS from "ember-data"` 

moduleFor "controller:register", "RegisterController", { 
} 

test "store is working", -> 
    expect 1 
    controller = @subject() 
    Ember.run(-> 
     sampleUser = controller.get("store").createRecord("user", { 
      username: "myuser" 
      password: "otherpassword" 
     }) 
     ok(sampleUser instanceof DS.Model) 
    ) 

testi verecektir:

(app/testler/birim/kontrolörleri/kayıt-test.js eval de testinde ( http://localhost:4200/assets/vendor.js:73539:13) test 1. Ölmüş : 19: 5) requireModule de http://localhost:4200/assets/test-loader.js:14:29 de ( http://localhost:4200/assets/vendor.js:54:29) : null 'createRecord' özelliği okunamıyor

herkes w açıklayabilir DS yeteneklerime ya testlerimin içinden ya da denetleyicinin kendisinden (test çalıştırırken) erişemiyorum?

+0

Mağazanın bir örneğini el ile oluşturabilir misiniz? Bu, beklediğiniz gibi çalıştığını doğrulamak için bunu denetleyicinize (test altında) ekleyerek/ekleyerek enjekte edebilir misiniz? –

cevap

1

Ember-qunit, depoyu denetleyicilerinize enjekte etmediğinden, bu, tümleştirme testleri değil, birim testleri içindir. Ve Ember Data'nın mağazası, o denetleyicinin kapsamı dışında.

+0

Tamam, o zaman nasıl düzeltirim? – user1429980

+0

Burada test etmeye çalıştığınız nedir? Ember Data? Ünite testlerini sizinki yerine Ember Data'nın çerçevesine eklerim. JQuery'yi test etmekle aynı şey. – Kingpin2k

+0

https://github.com/emberjs/data/blob/master/packages/ember-data/tests/unit/store/create_record_test.js – Kingpin2k

0

Ember veri deposunu, birim testinin "ihtiyaçlar" bölümüne ekleyebilirsiniz. Ayrıca şöyle "ihtiyaçlar" bölümüne oluşturulan herhangi bir model eklemek gerekir:

needs: ['service:store', 'model:user'] 

Bu nesnenin (kontrolör, bileşen, rota, vs.) içine mağazanın gerçek örneğini enjekte edecektir test edilen .