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