Tidak , injeksi ketergantungan tidak penting untuk pengujian unit.
Ketergantungan injeksi membantu jika Anda memiliki kelas yang membutuhkan turunan kelas-dependen untuk melakukan beberapa sub-pemrosesan. Alih-alih DI Anda dapat memisahkan logika bisnis-metode menjadi bagian data-gethering (yang tidak dapat diuji unit) dan bagian perhitungan yang dapat diuji unit.
Contoh (menggunakan DI) Implementasi ini tergantung pada Karyawan, Akun, ...
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;
...
}
Setelah pemisahan pengumpulan data dan perhitungan:
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
...
}
Bagian perhitungan dapat dengan mudah diuji tanpa injeksi ketergantungan.