नहीं , यूनिट परीक्षण के लिए निर्भरता इंजेक्शन आवश्यक नहीं है।
निर्भरता इंजेक्शन मदद करता है यदि आप एक वर्ग है कि कुछ उप-प्रसंस्करण करने के लिए एक आश्रित वर्ग-उदाहरण की आवश्यकता है। DI के बजाय आप डेटा-गेटहेयरिंग-भाग (जो कि इकाई-परीक्षण योग्य नहीं है) और एक गणना भाग जो इकाई-परीक्षण किया जा सकता है, में व्यापार-पद्धति के तर्क को अलग कर सकता है।
उदाहरण (DI का उपयोग करते हुए) यह कार्यान्वयन कर्मचारी, खाता, ... पर निर्भर करता है
bool hasPermissionToTransferMoney(Employee employee, Account from, Account to, Money amount)
{
if (amount > 100 && employee.isStudent())
return false;
if (to.getOwner().getFamiliyName() == employee.getFamilyName() && ...
return false; // cannot transfer money to himself;
...
}
डेटा एकत्र करने और गणना के अलग होने के बाद:
bool hasPermissionToTransferMoney(Employee employee, Account from, Account to, Money amount)
{
return hasPermissionToTransferMoney(employee.isStudent(), employee.getFamilyName(), to.getOwner().getFamilyName(), ...);
}
// the actual permission calculation
static bool hasPermissionToTransferMoney(boolean isStudent, string employeeFamilyName, string receiverFamilyName, ...)
if (amount > 100 && isStudent)
return false;
if (receiverFamilyName == employeeFamiliyName && ...
return false; // cannot transfer money to himself
...
}
गणना भाग आसानी से निर्भरता इंजेक्शन के बिना परीक्षण किया जा सकता है।