वास्तविक परियोजना ने मुझे दिखाया कि इकाई परीक्षण और फिर एकीकरण लिखना संभव नहीं है और यहां तक कि विपरीत दिशा भी गलत है :-) इसलिए, मैं आमतौर पर एकीकरण के साथ इकाई परीक्षण लिखता हूं।
क्यूं कर? मुझे लिखने दें कि मैं दोनों प्रकार के परीक्षण कैसे देखता हूं:
यूनिट परीक्षण - विकिपीडिया और सभी जानकारी के अलावा, यूनिट परीक्षण आपको अपना डिज़ाइन संकीर्ण करने , अपने मॉडल, संबंधों को बेहतर बनाने में मदद करते हैं। प्रवाह सरल है: एक बार जब आप नई परियोजना / नया घटक लिखना शुरू करते हैं, तो अधिकांश समय आप किसी प्रकार का PoC बना रहे होते हैं । जब आप किए जाते हैं, तो आपके पास हमेशा लंबी विधियां, लंबी कक्षाएं, गैर-सुसंगत तरीके और कक्षाएं, आदि होते हैं।
यूनिट परीक्षण आपको इन मुद्दों को दूर करने में मदद करते हैं जब आप वास्तविक यूनिट का परीक्षण करते हैं, तो ऊपर वर्णित मॉक (अन्य घटक पर w / o निर्भरता) का उपयोग करके परीक्षण किया जा सकता है। अप्राप्य कोड का मूल संकेत परीक्षणों का बड़ा नकली हिस्सा है क्योंकि आपको कई निर्भरताओं (या स्थितियों) का मज़ाक बनाने के लिए मजबूर किया जाता है।
एकीकरण परीक्षण - सही और कामकाजी परीक्षण आपसे कहते हैं कि आपका नया घटक (या घटक) एक साथ या अन्य घटकों के साथ काम करता है - यह सामान्य परिभाषा है। मैंने पाया है कि एकीकरण परीक्षण ज्यादातर प्रवाह को परिभाषित करने में आपकी मदद करते हैं कि उपभोक्ता पक्ष से अपने घटक का उपयोग कैसे करें ।
यह वास्तव में महत्वपूर्ण है क्योंकि यह कभी-कभी आपसे कहता है कि आपका एपीआई बाहर से कोई मतलब नहीं है।
खैर, एक बार मैंने इकाई परीक्षण और एकीकरण परीक्षण बाद में क्या लिखा?
मुझे अच्छी कक्षाएं, स्पष्ट डिज़ाइन, अच्छे निर्माणकर्ता, छोटे और सुसंगत तरीके, IoC तैयार आदि मिले। एक बार जब मैं अपनी कक्षा / एपीआई कुछ उपभोक्ता को देता हूं, जैसे एकीकरण या GUI टीम से डेवलपर, तो वह मेरे API का उपयोग करने में असमर्थ था क्योंकि यह असंगत लगता है , अजीब। वह सिर्फ उलझन में था। इसलिए मैंने उनके दृष्टिकोण के अनुसार एपीआई की मरम्मत की, लेकिन कई परीक्षणों को फिर से लिखना भी आवश्यक था क्योंकि मुझे तरीकों को बदलने के लिए धक्का दिया गया था और कभी-कभी प्रवाह भी एपीआई का उपयोग कैसे करें।
खैर, एक बार जब मैंने एकीकरण परीक्षण और इकाई परीक्षण लिखे, तब क्या होगा?
मुझे सटीक प्रवाह मिला, अच्छी उपयोगिता। मेरे पास भी बड़ी कक्षाएं, गैर-सुसंगत कोड, कोई लॉगिंग, लंबी विधियां नहीं हैं। स्पेगेटी कोड
मेरी क्या सलाह है?
मैंने निम्न प्रवाह सीखा है:
- अपने कोड के बुनियादी कंकाल विकसित करें
- एकीकरण परीक्षण लिखें जो कहते हैं कि क्या यह उपभोक्ता के दृष्टिकोण से समझ में आता है। बुनियादी उपयोग-मामला अभी के लिए पर्याप्त है। परीक्षण स्पष्ट रूप से काम नहीं करता है।
- प्रत्येक कक्षा के लिए यूनिट टेस्ट के साथ कोड भी लिखें।
- एकीकरण परीक्षण के बाकी / लापता को लिखें। # 3 के भीतर इन परीक्षाओं को लागू करना बेहतर होगा कि आप अपना कोड कैसे सुधार रहे हैं।
ध्यान दें कि मैंने इकाई / एकीकरण परीक्षण के बारे में छोटी प्रस्तुति दी है, स्लाइड # 21 देखें जहां कंकाल का वर्णन किया गया है।