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