না , নির্ভরতা ইঞ্জেকশন ইউনিট পরীক্ষার জন্য প্রয়োজনীয় নয়।
নির্ভরতা ইনজেকশন সাহায্য করে যদি আপনার এমন কোনও ক্লাস থাকে যা কিছু উপ-প্রক্রিয়াজাতকরণের জন্য নির্ভরশীল শ্রেণীর উদাহরণ প্রয়োজন। ডিআই-এর পরিবর্তে আপনি কোনও ব্যবসায়-পদ্ধতির যুক্তি একটি ডেটা-গিটারিং-অংশে (যা ইউনিট-পরীক্ষামূলক নয়) এবং একক-অংশ যা ইউনিট-পরীক্ষিত হতে পারে তা আলাদা করতে পারে।
উদাহরণ (ডিআই ব্যবহার করে) এই বাস্তবায়নটি কর্মচারী, অ্যাকাউন্ট, ...
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
...
}
নির্ভরতার ইনজেকশন ছাড়াই গণনার অংশটি সহজেই পরীক্ষা করা যায়।