2013-07-11 14 views
6

मैं अंगुलरजेस के लिए नया हूं और निर्भरता के साथ निर्देश का परीक्षण करने की कोशिश कर रहा हूं (हालांकि निर्देश स्वयं अपेक्षा के अनुसार काम करता है)। मैं यहां या अन्य संसाधनों पर कोई जवाब नहीं ढूंढ पाया।निर्भरता के साथ कोणीय निर्देशों का परीक्षण

निर्देशक:

angular.module('MyApp') 
    .directive('appVersion', ['config', function (config) { 
    return function (scope, elm) { 
     elm.text(config.version); 
    }; 
    }]); 

सेवा (मूल्य):

यहाँ मेरी कोड है

angular.module('MyApp') 
    .value('config', { 
    version: '0.1' 
    }); 

टेस्ट:

describe('Directive: AppVersion', function() { 
    beforeEach(module('MyApp')); 

    var element; 

    it('should have element text set to config value', inject(function ($rootScope, $compile, config) { 
     var scope = $rootScope; 
     element = $compile('<app-version></app-version>')(scope); 
     expect(element.text()).toBe(config.version); 
    })); 
}); 

मेरे परीक्षण संदेश के साथ विफल है:

Error: Expected '' to be '0.1'. 

जिसका अर्थ है कि कॉन्फ़िगरेशन मान ठीक से इंजेक्शन दिया गया है, लेकिन $ complile इसका उपयोग नहीं कर रहा था। मैं वास्तव में इस पर किसी भी मदद की सराहना करता हूं। धन्यवाद।

उत्तर

3

आपने निर्देश की प्रतिबंधित विशेषता निर्दिष्ट नहीं की है। जब आप इसे निर्दिष्ट नहीं करते हैं, तो इसका अर्थ यह है कि एप-वर्जन को एप-वर्जन के रूप में घोषित किया गया है, एक तत्व नहीं।

तो तुम निर्देश के लिए प्रतिबंधित विशेषता जोड़ सकते हैं या अपनी टेम्पलेट बदल सकते हैं:।

element = $compile('<div app-version></div>')(scope); 
+0

मैं कोशिश की है कि रूप में अच्छी तरह बुला के रूप में 'गुंजाइश $ डाइजेस्ट()' सीधे है, लेकिन किसी भी परिणाम के बिना - मुझे लगता है क्योंकि निर्देश वास्तव में दायरे का उपयोग नहीं करता है। – Tiger

+0

संपादित उत्तर देखें –

+0

धन्यवाद, यह अब काम करता है! हालांकि, यह अजीब बात है कि यह परीक्षण और विशेषता दोनों के रूप में परीक्षण के बाहर ठीक काम कर रहा है। – Tiger

संबंधित मुद्दे