2012-08-09 13 views
9

क्या किसी के पास यह जांचने के लिए कोई अच्छी सलाह है कि एम्बर मार्ग के कनेक्टऑलेट्स सफल रहे हैं?परीक्षण ember.js कनेक्टऑलेट

उदाहरण के लिए, मैं निम्नलिखित मार्गों है

vault: Ember.Route.extend 
    route: '/vault' 
    connectOutlets: (router, event) -> 
    router.get('applicationController').connectOutlet 'exercises' 
    index: Ember.Route.extend 
    route: '/' 
    connectOutlets: (router, event) -> 
     exercises = WZ.store.find(WZ.Exercise) 
     router.get('exercisesController').connectOutlet 'main', 'exercisesHome', exercises 

मैं कैसे की जाँच है कि इस वांछित व्यवहार हो रही थी के बारे में जाना होगा?

मैं इस तरह currentState.path परीक्षण कर सकते हैं:

it 'should transition to vault', -> 
    Ember.run => 
    @router.transitionTo 'vault' 
    expect(@router.getPath('currentState.path')).toEqual 'root.vault' 

लेकिन मुझे नहीं लगता कि यह एक बहुत अच्छा परीक्षण है।

उत्तर

1

मेरी राय में, यह कोड परीक्षण के लायक नहीं है।

जब 'तिजोरी/सूचकांक' राज्य के लिए रूटर संक्रमण, और सब कुछ ठीक है, निम्न होता है::

सबसे पहले, के औपचारिक रूप से इस कोड के लिए एक वांछित व्यवहार को परिभाषित करते हैं

  1. एंबर नया बनाता है ExercisesHomeView
  2. एंबर के कहने व्यायाम की एक सूची में exercisesHomeController की सामग्री संपत्ति सेट
  3. एंबर ExercisesView टेम्पलेट में मुख्य आउटलेट से बनाए गए दृश्य जोड़ता है
  4. 0,123,

आप देखते हैं, सभी सार्थक काम एम्बर द्वारा किया जाता है। इसलिए, सख्ती से बोलने के लिए, परीक्षण करने के लिए कुछ भी नहीं है, क्योंकि हम तीसरे पक्ष के कोड का परीक्षण नहीं करते हैं।

मेरी राय में, इस कोड में केवल एक चीज है जो शायद परीक्षण योग्य है: चाहे हम नियंत्रक को सही डेटा प्रदान कर रहे हों। फिर भी, मैं इस दुर्व्यवहार का सामना करने के बाद ही इस कोड का परीक्षण करूंगा।