Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Ujian unit PHP: Peranan suntikan pergantungan dalam ujian

Ujian unit PHP: Peranan suntikan pergantungan dalam ujian

PHPz
PHPzasal
2024-06-03 18:40:00789semak imbas

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.

Ujian unit PHP: Peranan suntikan pergantungan dalam ujian

Pengujian Unit PHP: Peranan Suntikan Ketergantungan dalam Pengujian

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 进行单元测试,你可以执行以下步骤:

  1. 创建 DI 容器并注册依赖项:
use Pimple\Container;

$container = new Container();
$container['dependency'] = function () {
    return new Dependency();
};
  1. 使用 DI 容器实例化 TUC:
$myClass = $container->make('MyClass');
  1. 模拟或存根依赖项:
$mockDependency = $this->getMockBuilder(Dependency::class)
    ->disableOriginalConstructor()
    ->getMock();

$container['dependency'] = $mockDependency;
  1. 运行测试:
$this->assertEquals('Expected result', $myClass->doSomething());

通过使用 DI,你可以隔离 MyClass

  • Buat bekas DI dan daftarkan kebergantungan: 🎜
  • rrreee
    1. 🎜Gunakan bekas DI untuk mewujudkan TUC: 🎜
    2. rrreee
      1. 🎜Kebergantungan olok-olok atau stub: 🎜
      rrreee
      1. 🎜Jalankan ujian: 🎜 li>rrreee🎜Dengan menggunakan DI, anda boleh mengasingkan 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!

    Kenyataan:
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn