Rumah >pembangunan bahagian belakang >tutorial php >Kaedah ujian automatik untuk enkapsulasi dalam PHP

Kaedah ujian automatik untuk enkapsulasi dalam PHP

王林
王林asal
2023-10-12 15:14:021399semak imbas

Kaedah ujian automatik untuk enkapsulasi dalam PHP

Kaedah pengkapsulan ujian automatik dalam PHP

Abstrak: Ujian automatik ialah amalan pembangunan perisian yang penting, yang boleh meningkatkan kecekapan dan ketepatan ujian. Dalam pembangunan PHP, enkapsulasi adalah kunci kepada ujian automatik. Artikel ini akan memperkenalkan beberapa kaedah ujian automatik terkapsul dalam PHP dan memberikan contoh kod khusus.

  1. Pilihan rangka kerja ujian

Dalam pembangunan PHP, terdapat banyak rangka kerja ujian popular untuk dipilih, seperti PHPUnit, Codeception, dll. Memilih rangka kerja ujian yang sesuai dengan projek anda ialah langkah pertama dalam pembungkusan ujian automatik. Rangka kerja ujian ini menyediakan fungsi yang kaya dan pilihan konfigurasi yang fleksibel untuk membantu kami menulis dan menjalankan skrip ujian automatik dengan cepat.

Dalam artikel ini, kami akan menggunakan PHPUnit sebagai contoh rangka kerja ujian.

  1. Enkapsulasi kelas ujian

Apabila menjalankan ujian automatik, kami biasanya merangkum kelas yang diuji dalam kelas ujian. Ini memudahkan kami melakukan ujian unit dan memastikan kod ujian bersih dan boleh dibaca.

Berikut ialah contoh kelas ujian terkapsul:

use PHPUnitFrameworkTestCase;

class CalculatorTest extends TestCase
{
    private $calculator;

    protected function setUp(): void
    {
        $this->calculator = new Calculator();
    }

    public function testAdd()
    {
        $result = $this->calculator->add(2, 3);
        $this->assertEquals(5, $result);
    }

    public function testSubtract()
    {
        $result = $this->calculator->subtract(5, 3);
        $this->assertEquals(2, $result);
    }
}

Dalam kod di atas, kami mula-mula mewarisi kelas TestCase PHPUnit dan memulakan contoh kelas yang diuji dalam kaedah setUp. Kemudian, kami menentukan dua kaedah ujian untuk menguji fungsi penambahan dan penolakan masing-masing.

  1. Kaedah ujian pembungkusan

Selain kelas ujian pembungkusan, kami juga boleh membungkus kaedah ujian. Ini meningkatkan kebolehselenggaraan dan kebolehgunaan semula kod ujian.

Berikut ialah contoh kaedah ujian pakej:

use PHPUnitFrameworkTestCase;

class CalculatorTest extends TestCase
{
    private $calculator;
    
    protected function setUp(): void
    {
        $this->calculator = new Calculator();
    }
    
    private function assertOperationResult($method, $operand1, $operand2, $expectedResult)
    {
        $result = $this->calculator->$method($operand1, $operand2);
        $this->assertEquals($expectedResult, $result);
    }
    
    public function testAdd()
    {
        $this->assertOperationResult('add', 2, 3, 5);
    }
    
    public function testSubtract()
    {
        $this->assertOperationResult('subtract', 5, 3, 2);
    }
}

Dalam kod di atas, kami mentakrifkan kaedah persendirian bernama assertOperationResult, yang menerima empat parameter: nama kaedah, operan 1, operan 2 dan hasil jangkaan. Dalam kaedah ini, kami menggunakan refleksi untuk memanggil kaedah yang sepadan bagi kelas yang sedang diuji dan menegaskan keputusannya.

  1. Pembekal Data

Untuk beberapa kes ujian yang mungkin melibatkan berbilang set input, kami boleh menggunakan penyedia data untuk menyediakan data ujian. Ini mengelakkan menulis banyak kod pendua.

Berikut ialah contoh pembekal data:

use PHPUnitFrameworkTestCase;

class CalculatorTest extends TestCase
{
    private $calculator;
    
    protected function setUp(): void
    {
        $this->calculator = new Calculator();
    }
    
    /**
     * @dataProvider additionProvider
     */
    public function testAdd($a, $b, $expectedResult)
    {
        $result = $this->calculator->add($a, $b);
        $this->assertEquals($expectedResult, $result);
    }
    
    public function additionProvider()
    {
        return [
            [2, 3, 5],
            [5, 5, 10],
            [0, 0, 0],
        ];
    }
}

Dalam kod di atas, kami menggunakan kaedah yang dinamakan additionProvider sebagai pembekal data dan menambah anotasi @dataProvider pada kaedah ujian untuk menentukan penggunaan data Penyedia menyediakan data ujian . Kaedah additionProvider mengembalikan tatasusunan yang mengandungi berbilang set input dan hasil yang diingini.

Kesimpulan

Enkapsulasi ialah kunci kepada ujian automatik dalam PHP. Dengan memilih rangka kerja ujian yang sesuai dan menggunakan kaedah seperti kelas ujian terkapsul, kaedah ujian terkapsul dan pembekal data, anda boleh meningkatkan kecekapan dan ketepatan ujian anda sambil memastikan kod ujian anda bersih dan boleh dibaca. Saya harap kaedah yang diterangkan dalam artikel ini dapat membantu anda menjalankan ujian pembungkusan automatik dengan lebih baik!

Atas ialah kandungan terperinci Kaedah ujian automatik untuk enkapsulasi dalam PHP. 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