मैं इकाई परीक्षण के साथ शुरू कर रहा हूं और कुछ टीडीडी करने की कोशिश कर रहा हूं। मैंने इस विषय के बारे में काफी कुछ पढ़ा है और कुछ परीक्षण लिखे हैं। मैं सिर्फ यह जानना चाहता हूं कि निम्नलिखित सही दृष्टिकोण है या नहीं।मुझे नियंत्रक से ईमेल भेजने का परीक्षण कैसे करना चाहिए?
मैं अपनी वेबसाइट पर सामान्य "हमसे संपर्क करें" सुविधा जोड़ना चाहता हूं। आप इस बात को जानते हैं, उपयोगकर्ता अपने ईमेल पते के साथ एक फॉर्म भरता है, एक संक्षिप्त संदेश में प्रवेश करता है और फॉर्म को वापस पोस्ट करने के लिए बटन दबाता है।
मॉडल बाइंडर्स अपनी सामग्री करते हैं और मेरी क्रिया विधि पोस्ट किए गए डेटा को मॉडल के रूप में स्वीकार करती है। कार्रवाई विधि तब मॉडल को पार्स करेगी और वेब साइट प्रशासक को ईमेल भेजने के लिए smtp का उपयोग करेगी, जिससे किसी ने उन्हें अपनी साइट पर संपर्क फ़ॉर्म भर दिया होगा।
अब प्रश्न के लिए .... इस परीक्षण करने के लिए में, मैं एक अंतरफलक IMessageService एक विधि संदेश (EMAILADDRESS, संदेश) ईमेल पते और संदेश के मुख्य भाग को स्वीकार नहीं है बनाने में सही होगा। एक ठोस वर्ग में इंटीफेस को कार्यान्वित करें और उस वर्ग को smtp सामान से निपटने दें और वास्तव में मेल भेजें।
यदि मैं अपने नियंत्रक कन्स्ट्रक्टर के पैरामीटर के रूप में इंटरफ़ेस जोड़ता हूं तो मैं कंट्रोल क्लास को नियंत्रक में इंजेक्ट करने के लिए DI और IoC का उपयोग कर सकता हूं। लेकिन जब यूनिट परीक्षण मैं अपने IMessageService का नकली या नकली संस्करण बना सकता हूं और उस पर दावा कर सकता हूं।
कारण मैं पूछता हूं कि मैंने SmtpClient के लिए इंटरफेस उत्पन्न करने वाले लोगों के अन्य उदाहरण देखे हैं और फिर उस पर मजाक कर रहे हैं। क्या वास्तव में अब तक जाने की कोई ज़रूरत है या क्या मैं इस सामान को समझ नहीं रहा हूं?
मैं सहमत हूं, और जैसे ही आपको उस IMailClientAsync टी की आवश्यकता होती है, जिसे आप स्वैप कर सकते हैं। – Hal