Secara umum, DI Container tidak diperlukan untuk unit testing karena unit testing adalah tentang memisahkan tanggung jawab.
Pertimbangkan kelas yang menggunakan Pembuat Injeksi
public MyClass(IMyDependency dep) { }
Di seluruh aplikasi Anda, mungkin ada grafik ketergantungan besar yang tersembunyi di baliknya IMyDependency
, tetapi dalam pengujian unit, Anda meratakan semuanya menjadi satu Tes Ganda .
Anda dapat menggunakan tiruan dinamis seperti Moq atau RhinoMock untuk menghasilkan Test Double, tetapi itu tidak diperlukan.
var dep = new Mock<IMyDependency>().Object;
var sut = new MyClass(dep);
Dalam beberapa kasus, container auto-mocking bagus untuk dimiliki, tetapi Anda tidak perlu menggunakan DI Container yang sama dengan yang digunakan aplikasi produksi.