2013-08-15 12 views
6

मैं जैस्मीन उपयोग कर रहा हूँ हमारे नियंत्रकों के लिए इकाई परीक्षण लिखने के लिए है, लेकिन कैसे इस स्थिति को संभालने के लिए पर समुदाय प्रतिक्रिया प्राप्त करना चाहता था मान्य कोड के लिए एनजी क्लिक बिंदु की तरह निर्देशों सुनिश्चित करने के लिए ...AngularJS कैसे इकाई परीक्षण

इस बात की पुष्टि है कि मेरे नियंत्रक की उम्मीद तरीकों है मेरी इकाई परीक्षण में

angular.module('myModule').controller('myController', ['$scope', 
    function($scope) { 
     $scope.doSomething = function() { 
      $scope.something = 'bar'; 
     }; 
    } 
]}); 

:

it('should be able to do some work', function() { 

    // initialize scope properties 
    scope.someProperty = 'foo'; 

    // load controller using those properties 
    injectController(); 

    // do I have all of the functions necessary to do this work? 
    expect(typeof (scope.doSomething)).toBe('function'); 

    // now execute test 
    scope.doSomething(); 
    expect(scope.something).toBe('bar');  

} 

और अंत में, मेरी html में मेरे पास है InvoiceController, इस तरह -

मैं एक नियंत्रक है एनजी-क्लिक वाला एक तत्व, इस तरह:

<button ng-click="doSomehing()">Do Something</button> 

अच्छा लगता है, है ना? लेकिन, क्या किसी ने मुझे गलत किया है?

मेरी एनजी-क्लिक विधि गलत वर्तनी है, लेकिन सभी परीक्षण हरे हैं और जीवन गुलाबी लगता है ... जब तक कि मैं उस लड़के पर क्लिक करने की कोशिश नहीं करता और कुछ नहीं होता। कोई समय त्रुटि त्रुटि नहीं, क्लिक पर कोई त्रुटि नहीं है। हम्म।

कई बार अब जब मैं कोड को दोबारा कर रहा हूं तो मुझे यह मिला है। मैं नाम बदलता हूं कुछ करने के लिए कुछ यूनिट परीक्षण में और नियंत्रक में कुछ कूलर लेकिन एचटीएमएल में एक जगह याद आती है। सिर खरोंच के एक मिनट के बाद मैं देखता था कि क्या याद किया गया था।

मुझे यह सुनिश्चित करने का एक तरीका अच्छा लगेगा कि मार्कअप मान्य है। ई 2 ई परीक्षण स्पष्ट समाधान प्रतीत होते हैं, लेकिन वे नाजुकता के लिए प्रवण हैं इसलिए हम उम्मीद कर रहे हैं कि कुछ विकल्प हैं।

यदि यह एएसपी.Net था, तो मैं कोड से पीछे की घटनाओं को क्लिक करता हूं ताकि मैं रन टाइम त्रुटियों को संकलित समय त्रुटियों को संकलित कर सकूं।

विचार ??

Thad

+0

आप नाजुकता के लिए प्रवण क्यों कहते हैं? परीक्षण को डोम टेम्पलेट लोड करना चाहिए, बटन पर क्लिक करना चाहिए, और फिर जांचें कि परिणाम अपेक्षित हुआ, यदि नहीं, तो परीक्षण विफल हो जाता है, और आप उन स्थानों को पकड़ते हैं जहां आपने नाम बदल दिए हैं या गलत वर्तनी है। – aet

+0

@ एएट - अच्छा सवाल। यह मेरा विचार है कि जब आपके पास एक ऐसी प्रणाली है जो सक्रिय विकास में है, तो ई 2 ई परीक्षणों से आपको व्यवसाय की जरूरतों के लिए वास्तव में कोडिंग की तुलना में परीक्षण बनाए रखने में अधिक समय लगता है। एक बार सिस्टम के पास अंतिम साइनऑफ होता है और स्थिर हो जाता है, तो आप अधिक व्यापक परीक्षण जोड़ सकते हैं; तब तक मैं काम की छोटी, स्वतंत्र इकाइयों के साथ परीक्षण पर ध्यान केंद्रित करना पसंद करता हूं जिसे आवश्यक होने पर बहुत जल्दी संशोधित किया जा सकता है। मैंने यह सुनिश्चित करने के लिए मार्कअप के बजाय सर्वर पक्ष पर घटनाओं को बाध्य करने के द्वारा एएसपी.Net में एएसपी.Net में इसे पूरा किया, समय चलाने के लिए संकलन समय पर पकड़ा गया। –

उत्तर

2

एक बात तुम कर सकते हो खाका भी मिलता है और उस पर $compile चलाया जाता है। और फिर इसे अपने नियंत्रक के दायरे से लिंक करें। फिर आप dom.find('[ng-click]').click(); जैसे कुछ कर सकते हैं, जो उनमें से किसी को आपके नियंत्रक के दायरे में परिभाषित नहीं किया जाना चाहिए। यह समान है कि आप आम तौर पर निर्देशों का परीक्षण कैसे करते हैं।

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