आमतौर पर, यूनिट परीक्षण के लिए DI कंटेनर आवश्यक नहीं होना चाहिए क्योंकि इकाई परीक्षण सभी जिम्मेदारियों को अलग करने के बारे में है।
एक वर्ग पर विचार करें जो कंस्ट्रक्टर इंजेक्शन का उपयोग करता है
public MyClass(IMyDependency dep) { }
आपके पूरे आवेदन में, यह हो सकता है कि पीछे एक बहुत बड़ी निर्भरता ग्राफ छिपा हो IMyDependency
, लेकिन एक इकाई परीक्षण में, आप इसे एक एकल टेस्ट डबल तक समतल कर देते हैं ।
टेस्ट डबल उत्पन्न करने के लिए आप Moq या RhinoMocks जैसे डायनेमिक मॉक का उपयोग कर सकते हैं, लेकिन इसकी आवश्यकता नहीं है।
var dep = new Mock<IMyDependency>().Object;
var sut = new MyClass(dep);
कुछ मामलों में, एक ऑटो-मॉकिंग कंटेनर के लिए अच्छा हो सकता है, लेकिन आपको उसी डीआई कंटेनर का उपयोग करने की आवश्यकता नहीं है जो उत्पादन एप्लिकेशन उपयोग करता है।