के साथ मॉकिंग डेटा के बीच भ्रम हमने अंगुलरजेएस के साथ एक वेब ऐप विकसित करना शुरू कर दिया है और हमें इसकी जांच करने में कुछ समस्याएं हैं इसलिए हम कुछ सलाह का उपयोग कर सकते हैं।
आम तौर पर, परीक्षण के लिए निम्न घटक हैं: मार्ग HTML तत्वों को
- वेब एपीआई
- कोणीय नियंत्रकों
- कोणीय
कम से कम प्रयास के साथ यह सब कैसे परीक्षण करता है और यदि संभव हो तो ओवरलैप करें?
किसी भी डेटाबेस-केंद्रित अनुप्रयोग के लिए, पूर्ण एकीकरण परीक्षण (यानी एक लाइव सर्वर के साथ, डेटा से लोड डेटाबेस से जुड़ा हुआ) विशेष रूप से गन्दा होगा क्योंकि ऐसी प्रक्रिया होनी चाहिए जो सभी परीक्षणों और रीसेट के लिए पर्याप्त डेटा उत्पन्न करे डीबी और परीक्षणों को सावधान रहना होगा कि वे एक दूसरे के डेटा को संशोधित न करें। (अगर मुझे कुछ याद आ रहा है तो कृपया मुझे बताएं)
उपर्युक्त बिंदु को देखते हुए, मुझे लगता है कि सर्वर और क्लाइंट के बीच लिंक को अलग करना सबसे अच्छा है और केवल नकली डेटा का उपयोग करके कोणीय परीक्षण चलाएं।
इसके अलावा, मुझे लगता है कि यदि E2E परीक्षण सभी संभावित परिदृश्यों का ख्याल रखता है, तो यूनिट परीक्षण नियंत्रक अनावश्यक हैं क्योंकि उनके मान मॉडल के लिए बाध्य हैं (और इस प्रकार उपरोक्त 2, 3 और 4 का परीक्षण करेंगे)। यूनिट परीक्षण केवल जटिल नियंत्रकों में या सेवाओं और निर्देशों का परीक्षण करने में सहायक होगा।
हालांकि, expect*()
का उपयोग करते हुए, आप परीक्षण परीक्षणों पर $httpBackend
के साथ सामग्री का नकल करने के बारे में कोई जानकारी नहीं पा रहे थे। कोणीय दस्तावेज़ when*()
के साथ-साथ कभी-कभी passthrough()
का उपयोग करने का सुझाव देते हैं।
लेकिन, यह सभी परिदृश्यों के लिए परीक्षण डेटा बनाने की उपरोक्त समस्या उत्पन्न करता है और परीक्षणों को प्रभावित नहीं होने के लिए प्रत्येक परीक्षण से पहले आपको इन-मेमोरी डीबी को रीसेट करने की आवश्यकता होगी। साथ ही, आप $httpBackEnd.expect*()
का उपयोग करने की सुरक्षा खो रहे हैं जो जांचता है कि सर्वर पर कोई गुम या अनावश्यक कॉल नहीं है - यह मुझे सुझाव देगा कि इसे जांचने के लिए इकाई परीक्षण नियंत्रकों की भी आवश्यकता होगी।
क्या कोई एंगुलरजेएस ऐप्स के लिए एक विस्तृत परीक्षण रणनीति प्रदान कर सकता है जो उपरोक्त 4 घटकों के परीक्षण के साथ-साथ ऊपर लिखी चिंताओं को भी संबोधित करता है?
मैं अभी भी मेरे सिर में इस बारे में अलग-अलग विचारों प्रियतम वस्तु कर रहा हूँ। मुझे लगता है कि करने के लिए सबसे महत्वपूर्ण बात एक असली डेटाबेस पर, पूर्ण आवेदन का परीक्षण है। यह भी सबसे कठिन है। इसके लिए कोणीय परिदृश्य का उपयोग करना थोड़ा गलत लगता है, क्योंकि तब आप अपने सभी परीक्षणों के लिए स्वयं को कोणीय में बंद कर देते हैं। सेलेनियम WebDriver की तरह कुछ है कि के लिए बेहतर लगता है, लेकिन यह भी एक परेशानी स्थापित करने के लिए की अधिक है। अगर मुझे एक निश्चित रणनीति मिलती है तो मैं इसे वापस ले जाऊंगा। – iwein
बिल्कुल। वास्तविक डेटाबेस के खिलाफ बहुत सारे मूल्य परीक्षण हैं। कोणीय पारिस्थितिकी तंत्र के बाहर कुछ चुनने के लिए +1 हालांकि सेलेनियम शुरू करने के लिए कोई प्राकृतिक फिट नहीं है। आप पाइथन या सी # या जावा जैसे किसी भी सेलेनियम कार्यान्वयन को चुनने के लिए स्वतंत्र हैं। – fatuhoku