प्रसंग:
मैं फिलहाल पायथन में एक छोटे प्रोजेक्ट पर काम कर रहा हूं। मैं आम तौर पर अपनी कक्षाओं को कुछ सार्वजनिक तरीकों से तैयार करता हूं जो मुख्य रूप से उच्च स्तरीय अवधारणाओं (कक्षा के एक उपयोगकर्ता को पता होना चाहिए और उपयोग करना चाहिए), और छिपे हुए (अंडरस्कोर से शुरू होने वाले) तरीकों के साथ व्यवहार करते हैं जो कि प्रभारी हैं जटिल या निम्न स्तरीय प्रसंस्करण।
मुझे पता है कि कोड में आत्मविश्वास देने और यह सुनिश्चित करने के लिए परीक्षण आवश्यक हैं कि किसी भी बाद के संशोधन ने पिछले व्यवहार को नहीं तोड़ा है।
मुसीबत:
एक विश्वसनीय आधार पर उच्च स्तर के सार्वजनिक तरीकों का निर्माण करने के लिए, मैं आमतौर पर निजी तरीकों का परीक्षण करता हूं। मुझे यह पता लगाना आसान है कि क्या एक कोड संशोधन ने प्रतिगमन और कहां पेश किया है। इसका मतलब है कि वे आंतरिक परीक्षण मामूली संशोधन पर टूट सकते हैं और उन्हें ठीक करने / बदलने की आवश्यकता होगी
लेकिन मुझे यह भी पता है कि निजी पद्धति का परीक्षण करने वाली इकाई कम से कम एक विवादित अवधारणा या अधिक बार खराब अभ्यास के रूप में मानी जाती है। इसका कारण: केवल सार्वजनिक व्यवहार का परीक्षण ( रेफरी ) होना चाहिए ।
सवाल:
मैं निम्नलिखित सर्वोत्तम प्रथाओं का ध्यान रखता हूं और समझना चाहूंगा:
- निजी / गुप्त तरीकों पर यूनिट परीक्षणों का उपयोग क्यों बुरा है (जोखिम क्या है)?
- जब सार्वजनिक तरीके निम्न स्तर और / या जटिल प्रसंस्करण का उपयोग कर सकते हैं तो सबसे अच्छी प्रथाएं क्या हैं?
precisions:
- यह सवाल करने का तरीका नहीं है । पायथन में गोपनीयता की सच्ची अवधारणा नहीं है और छिपे हुए तरीके बस सूचीबद्ध नहीं हैं, लेकिन जब आप उनका नाम जानते हैं तो इसका इस्तेमाल किया जा सकता है
- मुझे प्रोग्रामिंग नियम और पैटर्न कभी नहीं सिखाए गए हैं: मेरी अंतिम कक्षाएं 80 से हैं ... मैंने मुख्य रूप से इंटरनेट पर परीक्षण और असफलता और संदर्भों से भाषाएं सीखी हैं (स्टैक एक्सचेंज वर्षों से मेरा पसंदीदा रहा है)