Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan PHPUnit untuk ujian unit dalam pembangunan PHP

Cara menggunakan PHPUnit untuk ujian unit dalam pembangunan PHP

WBOY
WBOYasal
2023-06-27 10:45:28865semak imbas

Dengan aplikasi luas bahasa PHP dalam pembangunan web, menggunakan PHPUnit untuk ujian unit telah menjadi bahagian penting dalam pembangunan PHP. Ujian unit boleh membantu kami mencari masalah dalam kod dan meningkatkan kebolehselenggaraan dan kebolehbacaan kod. Artikel ini akan memperkenalkan cara menggunakan PHPUnit untuk ujian unit.

  1. Pasang PHPUnit

PHPUnit boleh dipasang melalui Composer Masukkan arahan berikut dalam terminal:

composer require --dev phpunit/phpunit
  1. Tulis fail ujian

Kita perlu menulis fail ujian yang sepadan mengikut kod. Fail ujian perlu menggunakan fungsi penegasan (penegasan) yang disediakan oleh PHPUnit untuk menentukan sama ada ia memenuhi hasil yang dijangkakan. Berikut ialah contoh mudah:

class CalculatorTest extends PHPUnitFrameworkTestCase
{
    public function testAdd()
    {
        $calculator = new Calculator();
        $result = $calculator->add(2, 2);
        $this->assertEquals(4, $result);
    }
}

Dalam fail ujian ini, kami mewarisi kelas PHPUnitFrameworkTestCase, mentakrifkan kaedah testAdd untuk menguji kaedah tambah dalam kelas Kalkulator dan menggunakan fungsi assertEquals yang disediakan oleh PHPUnit untuk menentukan sama ada keputusan sebenar adalah sama dengan hasil yang diharapkan.

  1. Jalankan ujian

Untuk menjalankan fail ujian, anda perlu melaksanakan arahan berikut dalam terminal:

vendor/bin/phpunit tests/CalculatorTest.php

Arahan ini akan memulakan PHPUnit dan menjalankan semua kaedah ujian dalam fail ujian/CalculatorTest.php. Jika semua ujian lulus, PHPUnit akan mengeluarkan simbol hijau. Jika satu atau lebih ujian gagal, PHPUnit akan mengeluarkan mesej ralat dan memberikan sebab khusus kegagalan tersebut.

  1. Analisis Liputan

PHPUnit juga menyediakan alat analisis liputan kod yang boleh membantu kami menganalisis berapa banyak baris dalam kod ujian telah dilaksanakan. Tambahkan pilihan --coverage-html selepas arahan untuk menjalankan ujian untuk menjana laporan liputan.

vendor/bin/phpunit --coverage-html coverage tests/CalculatorTest.php

Arahan ini akan menjana direktori liputan dalam direktori semasa, yang mengandungi fail HTML Bukanya untuk melihat hasil analisis liputan.

  1. Pembekal Data

Apabila menulis fail ujian, kami mungkin perlu menguji sama ada beberapa set data memenuhi hasil yang dijangkakan. Pada masa ini, anda boleh menggunakan fungsi pembekal data yang disediakan oleh PHPUnit untuk mengelakkan menulis kod ujian berulang. Berikut ialah contoh menggunakan pembekal data:

class CalculatorTest extends PHPUnitFrameworkTestCase
{
    /**
     * @dataProvider additionProvider
     */
    public function testAdd($a, $b, $expected)
    {
        $calculator = new Calculator();
        $result = $calculator->add($a, $b);
        $this->assertEquals($expected, $result);
    }

    public function additionProvider()
    {
        return [
            [0, 0, 0],
            [0, 1, 1],
            [1, 0, 1],
            [1, 1, 2],
            [-1, 1, 0],
            [PHP_INT_MAX, 1, PHP_INT_MAX + 1],
        ];
    }
}

Dalam kelas ujian kalkulator, kami mentakrifkan kaedah AddedProvider untuk mengembalikan set data ujian, yang merangkumi dua operan dan hasil yang dijangkakan. Dalam kaedah testAdd, kami menggunakan anotasi dataProvider untuk mengenal pasti pembekal data Pada masa ini, PHPUnit akan melaksanakan berbilang ujian secara automatik, menggunakan set data setiap kali.

Ringkasan

Menggunakan PHPUnit untuk ujian unit boleh membantu kami meningkatkan kualiti dan kebolehselenggaraan kod kami. Artikel ini memperkenalkan fungsi PHPUnit seperti pemasangan, menulis fail ujian, menjalankan ujian, analisis liputan dan pembekal data. Saya harap kandungan ini dapat membantu pembangun PHP dengan ujian unit.

Atas ialah kandungan terperinci Cara menggunakan PHPUnit untuk ujian unit dalam pembangunan 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