Rumah > pembangunan bahagian belakang > tutorial php > Cara menggunakan PHPUnit untuk pembangunan dipacu ujian dalam pembangunan PHP

Cara menggunakan PHPUnit untuk pembangunan dipacu ujian dalam pembangunan PHP

WBOY
Lepaskan: 2023-06-25 14:22:01
asal
1013 orang telah melayarinya

Gunakan PHPUnit untuk pembangunan dipacu ujian dalam pembangunan PHP

Dengan perkembangan pesat industri perisian, pembangunan dipacu ujian (TDD) memainkan peranan yang semakin penting dalam proses pembangunan perisian. PHPUnit ialah salah satu rangka kerja ujian yang paling biasa digunakan dalam pembangunan PHP. Ia menyediakan set alat dan kaedah berguna yang boleh membantu pembangun menulis ujian unit berkualiti tinggi dan menyepadukannya ke dalam aplikasi PHP. Artikel ini akan memperkenalkan cara menggunakan PHPUnit untuk TDD dalam pembangunan PHP.

  1. Pasang PHPUnit

Mula-mula anda perlu memasang PHPUnit. Ia boleh dipasang melalui Composer, salah satu pengurus pakej paling popular untuk PHP. Mula-mula, anda perlu mencipta fail composer.json dalam direktori utama dan menambah kandungan berikut:

{
    "require-dev": {
        "phpunit/phpunit": "^9.5"
    }
}
Salin selepas log masuk

Versi PHPUnit 9.5 dinyatakan di sini dan boleh ditukar mengikut keperluan. Seterusnya, gunakan arahan berikut untuk memasang PHPUnit:

$ composer install
Salin selepas log masuk

Selepas pemasangan selesai, anda boleh mengesahkan sama ada PHPUnit berjaya dipasang dengan menggunakan arahan berikut:

$ ./vendor/bin/phpunit --version
Salin selepas log masuk
  1. Menulis kes ujian

Selepas PHPUnit dipasang, anda boleh mula menulis kes ujian. Kes ujian ialah satu set unit ujian yang digunakan untuk mengesahkan bahawa pelbagai bahagian fungsi kod sumber seperti yang diharapkan. Setiap kes ujian hendaklah mengandungi sekurang-kurangnya satu kaedah ujian, iaitu unit dalam kes ujian yang digunakan untuk mengesahkan kod. Kaedah ujian biasanya diuji menggunakan kaedah penegasan yang disediakan oleh PHPUnit.

Berikut ialah contoh mudah:

<?php
use PHPUnitFrameworkTestCase;

class MyTest extends TestCase
{
    public function testAddition()
    {
        $this->assertEquals(2, 1+1);
    }
}
Salin selepas log masuk

Dalam contoh ini, kes ujian dinamakan MyTest dan mengandungi kaedah ujian testAddition(). Kaedah ujian menggunakan kaedah penegasan assertEquals() untuk mengesahkan sama ada 1 + 1 sama dengan 2. Untuk butiran lanjut tentang kaedah penegasan PHPUnit, lihat dokumentasi PHPUnit rasmi.

  1. Melaksanakan kes ujian

Selepas kes ujian ditulis, ia perlu dilaksanakan untuk mengesahkan bahawa kod berjalan seperti yang diharapkan. Kes ujian boleh dilaksanakan menggunakan arahan berikut:

$ ./vendor/bin/phpunit MyTest.php
Salin selepas log masuk

Dalam arahan di atas, MyTest.php ialah nama fail kes ujian. Apabila kes ujian dilaksanakan, PHPUnit akan memuatkan fail secara dinamik dan melaksanakan kaedah ujian. Jika ujian lulus, mesej hijau dipaparkan jika ujian gagal, mesej merah dipaparkan.

  1. Menggunakan Mocks and Stubs

Mocks and Stubs ialah dua lagi ciri berguna PHPUnit. Ia digunakan untuk mengejek objek dan fungsi untuk memastikan bahawa kod dilaksanakan dalam konteks yang betul.

Mocks ialah sejenis objek khas yang digunakan untuk mensimulasikan dan menguji kelakuan objek lain. Dalam PHPUnit, Mocks dibuat menggunakan kaedah getMock(). Berikut ialah contoh penggunaan Mocks:

<?php
use PHPUnitFrameworkTestCase;

class UserRepositoryTest extends TestCase
{
    public function testGetUserById()
    {
        $user = new stdClass();
        $user->id = 1;
        $user->name = 'John';

        $repository = $this->getMock('UserRepository');
        $repository->expects($this->once())
          ->method('getUserById')
          ->with($this->equalTo(1))
          ->will($this->returnValue($user));

        $result = $repository->getUserById(1);

        $this->assertSame($user, $result);
    }
}
Salin selepas log masuk

Dalam kod di atas, gunakan kaedah getMock() untuk mencipta Mocks of UserRepository. Kemudian, gunakan kaedah expects() untuk menentukan kaedah yang perlu disimulasikan, dan gunakan kaedah with() untuk menentukan parameter input. Akhir sekali, gunakan kaedah will() untuk menentukan hasil operasi simulasi.

Stubs ialah alat lain yang serupa dengan Mocks untuk fungsi mengejek. Dalam PHPUnit, anda boleh menggunakan kod berikut untuk stubbing:

<?php
use PHPUnitFrameworkTestCase;

class MyTest extends TestCase
{
    public function testMyFunction()
    {
        $stub = $this->getMockBuilder('SomeClass')
                     ->getMock();

        $stub->method('myFunction')
             ->willReturn('foo');

        $this->assertSame('foo', $stub->myFunction());
    }
}
Salin selepas log masuk

Dalam contoh ini, mula-mula gunakan kaedah getMockBuilder() untuk mencipta Mocks of SomeClass. Kemudian, gunakan kaedah kaedah() untuk menentukan fungsi yang perlu disimulasikan, dan gunakan kaedah willReturn() untuk menentukan hasil operasi simulasi.

  1. Kesimpulan

PHPUnit menyediakan pembangun PHP dengan cara yang boleh dipercayai untuk menulis ujian unit berkualiti tinggi untuk memastikan kod berjalan seperti yang diharapkan. Dalam artikel ini, kami membincangkan cara menggunakan PHPUnit untuk pembangunan dipacu ujian dan cara mengejek objek dan fungsi menggunakan Mocks dan Stubs. Apabila menggunakan PHPUnit untuk pembangunan dipacu ujian, sentiasa ingat untuk menulis kes ujian sebelum menulis kod. Dalam kebanyakan kes, kes ujian yang ditulis dengan baik boleh memberikan kualiti kod yang lebih baik dan hasil yang lebih baik.

Atas ialah kandungan terperinci Cara menggunakan PHPUnit untuk pembangunan dipacu ujian dalam pembangunan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan