Cara menggunakan PHPUnit untuk ujian unit PHP
Dengan perkembangan industri pembangunan perisian, ujian secara beransur-ansur menjadi bahagian yang sangat diperlukan. Sebagai bahagian paling asas dalam ujian perisian, ujian unit bukan sahaja boleh meningkatkan kualiti kod, tetapi juga mempercepatkan pembangunan dan penyelenggaraan kod pembangun. Dalam bidang PHP, PHPUnit ialah rangka kerja ujian unit yang sangat popular, yang menyediakan pelbagai fungsi untuk membantu kami menulis kes ujian berkualiti tinggi. Dalam artikel ini, kami akan membincangkan cara menggunakan PHPUnit untuk ujian unit PHP.
- Pasang PHPUnit
Sebelum menggunakan PHPUnit, kita perlu memasangnya terlebih dahulu. PHPUnit ialah perpustakaan PHP yang boleh dipasang menggunakan Komposer. Daripada akar projek anda, jalankan arahan berikut:
composer require --dev phpunit/phpunit
Ini akan menambah PHPUnit pada projek anda sebagai pergantungan pembangunan.
- Menulis kes ujian
Menulis kes ujian biasanya merupakan langkah pertama dalam menggunakan PHPUnit. Kes ujian ialah skrip yang menguji satu atau lebih fungsi atau kaedah. Katakan kita mempunyai kelas Kalkulator:
class Calculator { public function add($a, $b) { return $a + $b; } }
Kita boleh menggunakan kes ujian untuk menguji kaedah tambah dalam kelas Kalkulator:
use PHPUnitFrameworkTestCase; class CalculatorTest extends TestCase { public function testAdd() { $calculator = new Calculator(); $result = $calculator->add(2, 3); $this->assertEquals(5, $result); } }
Dalam kes ujian ini, kami mencipta ujian yang dipanggil kelas Ujian CalculatorTest , yang mewarisi kelas PHPUnitFrameworkTestCase. Kami juga menulis kaedah ujian bernama testAdd, di mana kami mencipta tika Kalkulator dan melaksanakan kaedah tambah, dan akhirnya menggunakan $this->assertEquals untuk menguji sama ada hasil yang dikembalikan oleh kaedah tambah adalah sama dengan nilai yang dijangkakan.
- Menjalankan Kes Ujian
Setelah kami menulis kes ujian, kami boleh menggunakan PHPUnit untuk menjalankannya. Daripada akar projek kami, jalankan arahan berikut:
vendor/bin/phpunit
Ini akan menjalankan PHPUnit dan melaksanakan semua kes ujian yang tersedia. Jika anda hanya mahu menjalankan kelas ujian atau kaedah ujian tertentu, anda boleh menggunakan arahan berikut:
vendor/bin/phpunit tests/CalculatorTest.php vendor/bin/phpunit --filter testAdd tests/CalculatorTest.php
- Menggunakan Penegasan
PHPUnit menyediakan pelbagai jenis fungsi penegasan , boleh digunakan untuk menguji sama ada nilai pulangan fungsi atau kaedah memenuhi jangkaan kami. Berikut ialah beberapa fungsi penegasan yang paling biasa digunakan dalam PHPUnit:
- assertTrue($value): Uji sama ada $value is true
- assertFalse($value): Uji sama ada $ value is false
- assertEquals($expected, $actual): Uji sama ada $actual sama dengan $expected
- assertNotEquals($expected, $actual): Uji sama ada $actual tidak sama dengan $expected
- assertSame($expected, $actual): Uji sama ada $actual adalah sama dengan $expected
- assertNotSame($expected, $actual): Uji sama ada $actual berbeza daripada $ dijangka
- assertNull($ value): Uji sama ada $value is null
- assertNotNull($value): Uji sama ada $value is not null
- assertInstanceOf($expected, $ actual): Uji sama ada $actual ialah $expected Instance of
- assertNotInstanceOf($expected, $actual): Uji sama ada $actual bukan instance $expected
- Gunakan pembekal data
Kadangkala kita perlu menguji sama ada fungsi atau kaedah boleh mengembalikan hasil dengan betul untuk input yang berbeza. Pada masa ini kita boleh menggunakan fungsi pembekal data PHPUnit. Pembekal data ialah kaedah yang menyediakan satu set parameter, setiap satunya adalah koleksi data yang boleh diuji.
Dalam contoh berikut, kami telah menulis pembekal data untuk kaedah tambah kelas Kalkulator, yang menyediakan data input yang berbeza dan output yang dijangkakan.
class CalculatorTest extends TestCase { /** * @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], [2, 3, 5], [-1, 1, 0], [10, -5, 5] ]; } }
Dalam kes ujian ini, kami menggunakan anotasi @DataProvider untuk memberitahu PHPUnit tempat mencari pembekal data. Kami menulis pembekal data yang dipanggil additionalProvider di mana kami menyediakan data input yang berbeza dan output yang dijangkakan. Dalam kaedah ujian testAdd, kami lulus data ini secara langsung dan mengujinya.
- Menggunakan Objek Olok-olok
Apabila kita menguji kaedah dalam objek, kita mungkin tidak mahu bergantung pada kelas lain atau sumber luaran. Pada masa ini kita boleh menggunakan objek Mock PHPUnit untuk mensimulasikan kebergantungan ini. Objek olok-olok ialah objek olok-olok yang menyediakan antara muka yang sama, tetapi ia sebenarnya tidak dibuat seketika.
Dalam contoh berikut, kami menulis objek Mock untuk kaedah tambah dalam kelas Kalkulator untuk mensimulasikan kebergantungan luaran.
class CalculatorTest extends TestCase { public function testAdd() { $mock = $this->getMockBuilder('Dependency') ->getMock(); $mock->expects($this->once()) ->method('getValue') ->will($this->returnValue(5)); $calculator = new Calculator($mock); $result = $calculator->add(2, 3); $this->assertEquals(10, $result); } }
Dalam kes ujian ini, kami menggunakan kaedah getMockBuilder untuk mencipta objek Mock bernama Dependency. Kemudian kami menjangkakan kaedah getValue objek Mock dipanggil sekali dan mengembalikan 5. Akhir sekali kita menyerahkan objek Mock ini kepada pembina kelas Kalkulator.
Ringkasan
Dalam artikel ini, kami mempelajari cara menggunakan PHPUnit untuk ujian unit PHP. Kami memasang PHPUnit, menulis kes ujian, menjalankan kes ujian dan menggunakan penegasan, penyedia data dan objek Mock. Melalui langkah ini, kami boleh menulis kes ujian berkualiti tinggi untuk menguji kod kami untuk meningkatkan kualiti kod dan mempercepatkan pembangunan dan penyelenggaraan.
Atas ialah kandungan terperinci Cara menggunakan PHPUnit untuk ujian unit PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Dalam bab ini, kita akan memahami Pembolehubah Persekitaran, Konfigurasi Umum, Konfigurasi Pangkalan Data dan Konfigurasi E-mel dalam CakePHP.

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

Bekerja dengan pangkalan data dalam CakePHP adalah sangat mudah. Kami akan memahami operasi CRUD (Buat, Baca, Kemas Kini, Padam) dalam bab ini.

Untuk mengusahakan muat naik fail, kami akan menggunakan pembantu borang. Di sini, adalah contoh untuk muat naik fail.

Dalam bab ini, kita akan mempelajari topik berikut yang berkaitan dengan penghalaan ?

CakePHP ialah rangka kerja sumber terbuka untuk PHP. Ia bertujuan untuk menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP adalah berdasarkan seni bina seperti MVC yang berkuasa dan mudah difahami. Model, Pandangan dan Pengawal gu

Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.
