कुछ वर्षों के बाद कोडिंग और परियोजनाओं पर काम करने के बाद मैं अपने स्वयं के प्रश्न का उत्तर दूंगा।
हां, आपको यूनिट टेस्ट लिखना चाहिए। अंत से लेकर अंत तक के परीक्षण कठिन हैं और विशेष रूप से भंगुर हैं यदि वे यूआई घटकों पर निर्भर हैं।
यदि आप Django या रेल (या अपने स्वयं के कस्टम वर्ग) जैसे ढांचे का उपयोग कर रहे हैं, तो आपके पास एक फॉर्म वर्ग होना चाहिए जो फ़ॉर्म के सत्यापन को संभाल लेगा। आपके पास देखने वाले वर्ग भी होंगे जो प्रदान किए गए टेम्प्लेट और फॉर्म को प्रदर्शित करते हैं और GET और POST अनुरोधों को संभालते हैं।
अंत करने के लिए अंत में आप होगा परीक्षण:
- url प्राप्त करें
- वैध डेटा के साथ फॉर्म भरें
- प्रपत्र को url पर पोस्ट करें
- यह सुनिश्चित करने के लिए जाँच करें कि डेटाबेस को अपडेट किया गया है या वैध फॉर्म के परिणामस्वरूप कुछ कार्रवाई निष्पादित की गई है
आप बहुत सारे कोड का परीक्षण कर रहे हैं और आपका कवरेज बहुत अच्छा होगा लेकिन जब आप सब कुछ सही हो जाता है तो आप केवल खुश रास्ते का परीक्षण कर रहे हैं। आप यह कैसे सुनिश्चित करते हैं कि फॉर्म में सही मान्यता है? क्या होगा यदि उस फॉर्म का उपयोग कई पृष्ठों पर किया जाए? क्या आप परीक्षण समाप्त करने के लिए एक और अंत लिखते हैं?
इकाई परीक्षणों के साथ इसे फिर से आज़माएँ:
- GET विधि देखें
- नकली / नकली फॉर्म के साथ POST विधि को देखें
- वैध डेटा के साथ फॉर्म का परीक्षण करें
- अमान्य डेटा वाले फ़ॉर्म का परीक्षण करें
- प्रपत्र के दुष्प्रभावों का परीक्षण करें
इकाई परीक्षणों का उपयोग करके, आप कोड के छोटे टुकड़ों का परीक्षण कर रहे हैं और परीक्षण विशिष्ट और लिखने में आसान हैं। जब आप इसे TDD (टेस्ट ड्रिवेन डेवलपमेंट) के साथ जोड़ते हैं तो आपको उच्च गुणवत्ता कोड प्राप्त होता है।
इकाई परीक्षण लिखने में आसानी को खारिज नहीं किया जाना चाहिए क्योंकि जब आप एक ऐसी परियोजना पर होते हैं जिसमें कोई स्वचालित परीक्षण नहीं होता है, तो आपको कहीं न कहीं शुरुआत करनी होगी। यूनिट परीक्षणों के साथ शुरू करना आसान और तेज़ है और आपको केवल खुशहाल मार्ग के बजाय बग के लिए तुरंत परीक्षण शुरू करने देता है।
was told by a co-worker that the reason for this is that we can rip out and change the underlying implementation at any point as long as the end-to-end tests pass.
- यह इकाई परीक्षणों का भी सच है। यह मुझे लगता है जैसे यूनिट टेस्ट न लिखने के बहाने एंड-टू-एंड टेस्ट का इस्तेमाल किया जा रहा है।