ऑब्जेक्ट्स को मॉक करने का एकमात्र तरीका यह है कि अपवाद को फेंक दिया जा सकता है?
मेरा मानना है कि यह सबसे आसान तरीका होगा, लेकिन आप एक स्टब भी कर सकते हैं (उर्फ ऑब्जेक्ट जो वास्तविक वस्तु को बढ़ाता है, और प्रत्येक बार अपवाद फेंकने की तरह व्यवहार करता है)। या आप एओपी का उपयोग कर सकते हैं, लेकिन मुझे लगता है कि easymock या jmock जैसी लाइब्रेरी का उपयोग करने का सबसे आसान तरीका होने जा रहा है।
यह थोड़ा सा व्यर्थ लगता है। शायद 100% कोड कवरेज नहीं प्राप्त करना स्वीकार करना बेहतर है?
जब भी मैं इस विषय पर बात करता हूं, मैं लोगों की मानसिकता को कवरेज के एक निश्चित प्रतिशत के बारे में चिंता करने से रोकता हूं, और इसके बजाय आपको बेहतर डेवलपर बनाने के लिए टूल के रूप में प्रतिशत का उपयोग करने के लिए पसंद करता हूं। 100% कवरेज या 50% कवरेज रखने का एक और तरीका यह नहीं है कि आपका कोड अच्छी तरह से लिखा गया है या यहां तक कि काम कर रहा है लेकिन कोड कवरेज का उपयोग मुख्य संकेतक के रूप में करते समय जब आप कोड विकसित कर रहे हैं कि आप लिखने के परीक्षण आदि पर slacking रहे हैं ... है एक अच्छा विचार।
आपके प्रश्न के बारे में मेरी व्यक्तिगत राय यह है कि यदि यह तर्क है कि आपका आवेदन कर रहा है, तो यह परीक्षण के लायक है। इसलिए यदि आप इस विधि से झूठ बोल रहे हैं और अपवाद और रीट्यूनिंग कर रहे हैं, तो आपके पास इसके लिए एक परीक्षण होना चाहिए। यदि आप अपवाद को पकड़ रहे हैं और इसे किसी अन्य अपवाद में लपेट रहे हैं तो आपको इसका परीक्षण करना चाहिए। यदि आप अपवाद को पकड़ रहे हैं और कुछ भी नहीं कर रहे हैं, तो यह एक कोड गंध होना चाहिए जिसे ठीक करने की आवश्यकता है क्योंकि इससे सभी प्रकार के अप्रबंधनीय साइड इफेक्ट्स हो सकते हैं।
यह सुनिश्चित करने के लिए कि 100% क्रोध नहीं है, मैं कहूंगा कि यह इसके लायक नहीं है। आपको अपने लिए एक अच्छा आराम स्तर मिलना चाहिए (शायद 80%, शायद 90%) और इसके साथ चिपके रहें। लेकिन मैं इसे परीक्षण के प्रकारों (जैसे परीक्षण अपवाद तर्क) पर आधारित नहीं करता हूं, यह केवल कुल कवरेज पर आधारित होना चाहिए और एक संकेतक के रूप में देखा जाना चाहिए कि जब आप कोड करते हैं तो आप अपने परीक्षण नहीं लिख रहे हैं।
स्रोत
2010-05-21 12:29:46
अंतिम कुछ प्रतिशत अंक आम तौर पर परेशानी के लायक नहीं होते हैं (बशर्ते कि वे जो सुविधा लागू करते हैं वह मूल आवश्यकता है, फिर आपने गलत प्रतिशत बिंदुओं के साथ शुरू किया ;-))। –
अपवाद हैंडलिंग कोड आमतौर पर बग से भरा होता है - निश्चित रूप से परीक्षण के लायक है। – Peli
मुझे पेली से सहमत होना है, हम 100% कर रहे हैं और हमें यह करने के लिए बहुत से संभावित बग मिलते हैं। – roundcrisis