2014-10-15 35 views
7

Model birimini ve bir birim sınamasından kaynaklanan eylemleri göremiyorum.qunit kullanarak nasıl ember-cli uygulamasında birim test edilir?

Bu ember-cli ortamını kullanan herhangi bir örnek/blog büyük bir yardım olacaktır! Geçiş tanımlanmadı:

ben gibi hataları atıyor() bu bağlantıyı What kind of unit test solution for the routes in Ember.js?

ama route.model bulundu.

import { test, moduleFor } from 'ember-qunit'; 

moduleFor('route:sample', 'SampleRoute', { 
    // Specify the other units that are required for this test. 
}); 

test("beforeModel hook works", function(){ 
    var route = this.subject(); 
    Ember.run(function(){ 
     route.set("model", "Sample data"); 
    }) 
    console.log("Model set. Was beforeModel hook called?"); 
}); 

Numune Rota

import Ember from 'ember'; 

export default Ember.Route.extend({ 

    beforeModel: function (transition) { 
     console.log("Inside before-model hook"); 
    }, 

    afterModel: function() { 
     console.log("In after-model hook"); 
    } 
}); 
+0

Test kodunuzu buraya ekleyebilir misiniz? –

+0

@PatsyIssa model kancalar testlerde tetiklenmez. – Stuarty

cevap

1

Ne yazık ki bu işlerin oldukça nasıl değil. beforeModel sadece model ayarlanmadan ve afterModel sonradan çağrılmaz. Bunlar, bir rotanın yaşam döngüsünün bir parçası olarak bu sırayla (beforeModel -> model -> afterModel) çağrılan kancalardır.

Ne yazık ki, birim testleri Rotaları için iyi bir yol bulamadık. Test etmeniz gereken belirli beforeModel mantığına sahipseniz, doğrudan beforeModel numaralı telefonu arayabilirsiniz. Rota mantığının kabul tarzı testlerle en iyi şekilde test edildiğini buldum, çünkü o zaman Rotanın çalıştırılmasının, uygulamanın gerçekte çalıştığı zamanki gibi çalıştırıldığını görüyorsunuz.

İlgili konular