Ujian Unit Berkesan dengan IoC: Bekas DI—Selalunya Tidak Diperlukan
Ujian unit mengutamakan pengasingan dan pengesahan komponen individu, menekankan pengasingan kebimbangan. Oleh itu, menggunakan bekas Suntikan Ketergantungan (DI) biasanya berlebihan.
Suntikan Pembina dan Objek Olok-olok
Mari kita periksa kelas menggunakan Constructor Injection:
<code>public MyClass(IMyDependency dep) { }</code>
Walaupun dengan perhubungan pergantungan yang rumit, ujian unit menyelaraskan perkara ini dengan menggantikan pergantungan dengan Test Double.
Perpustakaan mengejek dinamik popular seperti Moq atau RhinoMocks memudahkan penciptaan Test Double, tetapi tidak begitu diperlukan:
<code>var dep = new Mock<IMyDependency>().Object; var sut = new MyClass(dep);</code>
Auto-Mengejek: Alat yang Mudah, tetapi Pilihan
Bekas auto-olok-olok menawarkan kemudahan, tetapi mencerminkan bekas persekitaran pengeluaran tidak penting. Rangka kerja seperti Moq atau Simple Injector menyediakan ciri auto-olok-olok terbina dalam yang sangat sesuai untuk ujian unit.
Atas ialah kandungan terperinci Adakah Bekas DI Diperlukan untuk Ujian Unit Berkesan dengan IoC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!