Dalam ujian unit, suntikan kebergantungan (DI) digunakan untuk memisahkan kebergantungan, dengan itu meningkatkan kebolehselenggaraan dan kebolehgunaan semula ujian. Dengan DI, anda boleh mengejek atau mengetepikan tingkah laku pergantungan untuk menguji TUC anda terhadap gabungan pergantungan khusus untuk memastikan ia berfungsi seperti yang diharapkan dalam keadaan yang berbeza. DI membenarkan TUC untuk diasingkan dan tingkah lakunya diuji secara bebas, dengan itu meningkatkan daya tahan ujian dan kebolehselenggaraan.
Dalam ujian unit, suntikan kebergantungan (DI) ialah teknik berkuasa yang membantu anda mencipta ujian yang boleh diselenggara dan boleh digunakan semula. Dengan menyahganding kebergantungan daripada kelas dalam ujian (TUC), DI membolehkan anda dengan mudah mengejek atau menegur tingkah laku kebergantungan, memberikan kawalan yang lebih besar ke atas pelaksanaan ujian.
Peranan Suntikan Ketergantungan
Salah satu kelebihan utama DI ialah ia membolehkan TUC diasingkan supaya anda boleh menguji kelakuannya secara bebas. Dengan menggunakan DI, anda boleh mencipta senario ujian di mana kebergantungan tertentu diejek atau ditikam manakala kebergantungan lain kekal tidak berubah. Dengan cara ini, anda boleh menguji TUC terhadap gabungan kebergantungan tertentu untuk memastikan ia berfungsi seperti yang diharapkan dalam pelbagai keadaan.
Melaksanakan DI dalam PHP
Terdapat banyak bekas DI tersedia dalam PHP. Salah satu pilihan yang paling popular ialah Jerawat:
use Pimple\Container; $container = new Container(); $container['dependency'] = function () { return new Dependency(); };
Contoh praktikal
Pertimbangkan kelas PHP berikut:
class MyClass { private $dependency; public function __construct(Dependency $dependency) { $this->dependency = $dependency; } public function doSomething() { // 使用 $this->dependency } }
Untuk menguji unit MyClass
menggunakan DI, anda boleh melakukan langkah berikut: MyClass
进行单元测试,你可以执行以下步骤:
use Pimple\Container; $container = new Container(); $container['dependency'] = function () { return new Dependency(); };
$myClass = $container->make('MyClass');
$mockDependency = $this->getMockBuilder(Dependency::class) ->disableOriginalConstructor() ->getMock(); $container['dependency'] = $mockDependency;
$this->assertEquals('Expected result', $myClass->doSomething());
通过使用 DI,你可以隔离 MyClass
MyClass
dan mengujinya terhadap gabungan kebergantungan tertentu. Pendekatan ini menjadikan ujian anda lebih berdaya tahan dan boleh diselenggara kerana ia membolehkan anda mengubah tingkah laku kebergantungan tanpa menjejaskan ujian lain. 🎜Atas ialah kandungan terperinci Ujian unit PHP: Peranan suntikan pergantungan dalam ujian. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!