Dengan pembangunan pembangunan perisian, semakin ramai pembangun menyedari kepentingan ujian unit. Ujian unit ialah kaedah ujian biasa dalam pembangunan perisian yang memastikan ketepatan dan kestabilan kod dengan menguji ketepatan modul berfungsi tunggal (juga dipanggil "unit"). Dalam artikel ini, kami akan membincangkan cara untuk mencapai ujian unit dan liputan kod menggunakan PHP dan PHPUnit.
PHPUnit ialah rangka kerja ujian sumber terbuka untuk menguji kod PHP. Ia menyokong pelbagai jenis ujian termasuk ujian unit, ujian fungsian dan ujian penyepaduan. Dalam artikel ini, kami akan menumpukan pada ujian unit.
Mengapa ujian unit dan liputan kod?
Apabila membangunkan perisian, kami biasanya cuba menguji kod kami sebanyak mungkin. Ujian unit ialah kaedah ujian yang lebih cekap yang boleh menguji secara berterusan semasa proses pembangunan untuk memastikan ketepatan kod. Selain itu, ia mempunyai faedah berikut:
Liputan kod ialah cara untuk menilai liputan ujian. Ia memberitahu anda sejauh mana kod anda telah diuji. Contohnya, jika liputan ujian anda ialah 60%, ini bermakna kod ujian anda meliputi 60% kod sumber. Dengan liputan kod, anda boleh mengukur sama ada perisian anda berkualiti tinggi dan sama ada anda memerlukan lebih banyak kes ujian.
Mulakan ujian unit dengan PHPUnit
Sebelum meneruskan, anda perlu memastikan anda telah memasang PHPUnit. Boleh dipasang melalui Komposer. Cipta fail composer.json dalam direktori projek anda dan tambahkan kebergantungan PHPUnit:
{ "require-dev": { "phpunit/phpunit": "^7.0" } }
Anda boleh memasang PHPUnit dengan menjalankan arahan berikut:
composer install --dev
Seterusnya, kami akan menunjukkan cara menulis ujian unit mudah. Bayangkan anda sedang menulis kelas PHP yang dipanggil "Kalkulator" yang melaksanakan operasi aritmetik asas. Berikut ialah kodnya:
class Calculator { public function add($a, $b) { return $a + $b; } public function subtract($a, $b) { return $a - $b; } }
Sekarang, tulis kelas ujian yang dipanggil "CalculatorTest" yang akan menguji kelas Kalkulator kami:
use PHPUnitFrameworkTestCase; class CalculatorTest extends TestCase { public function testAdd() { $calculator = new Calculator(); $result = $calculator->add(1, 2); $this->assertEquals(3, $result); } public function testSubtract() { $calculator = new Calculator(); $result = $calculator->subtract(2, 1); $this->assertEquals(1, $result); } }
Dalam kod di atas, kami telah menggunakan salah satu kaedah ujian asas yang disediakan oleh PHPUnit - assertEquals(). Ia membandingkan nilai ujian dengan nilai yang dijangkakan dan membuang pengecualian jika ia tidak sama.
Sekarang jalankan ujian PHPUnit:
./vendor/bin/phpunit CalculatorTest.php
Jika semua ujian lulus, output berikut akan dipaparkan:
PHPUnit 7.5.1 by Sebastian Bergmann and contributors. .. Time: 42 ms, Memory: 4.00 MB OK (2 tests, 2 assertions)
Perhatikan bahawa helah kecil digunakan dalam contoh ini, iaitu mentakrifkan kelas Kalkulator pada masa yang sama dalam fail yang sama CalculatorTest.php dan kelas ujian yang sepadan CalculatorTest.
Fahami kaedah ujian asas PHPUnit
PHPUnit menyediakan pelbagai kaedah ujian Berikut ialah contoh penggunaan beberapa kaedah asas:
Lebih banyak kaedah ujian untuk PHPUnit boleh didapati dalam dokumentasi.
Ujian Liputan Kod dengan PHPUnit
Kami telah melihat cara menggunakan PHPUnit untuk ujian unit. Sekarang, mari kita fahami cara menggunakan PHPUnit untuk ujian liputan kod.
Untuk mencapai liputan kod, kita perlu menambah pilihan --coverage-html semasa menjalankan PHPUnit. Ia akan menghasilkan laporan liputan kod HTML. Jalankan sahaja arahan berikut:
./vendor/bin/phpunit --coverage-html reports tests
Arahan ini menjalankan semua kes ujian dalam direktori ujian projek kami dan menjana laporan liputan kod dalam direktori laporan selepas dijalankan.
Selepas ini, anda boleh membuka laporan HTML dalam pelayar anda untuk melihat liputan kod sumber.
Ringkasan
Dalam artikel ini, kami memperkenalkan cara menggunakan PHPUnit untuk ujian unit dan liputan kod. Dengan ujian unit dan liputan kod, anda boleh meningkatkan kualiti dan kestabilan projek serta mengurangkan kos penskalaan dan pemfaktoran semula.
Apabila anda menulis kod PHP, ingat untuk menulis ujian unit yang baik. Ujian unit yang baik digunakan untuk mengesahkan ketepatan kod, mencegah ralat regresi dan memastikan keteguhan kod. Dengan menulis kes ujian yang baik, anda boleh menangkap masalah lebih awal dan membetulkannya sebelum ia berlaku.
Atas ialah kandungan terperinci Ujian unit dan liputan kod menggunakan PHP dan PHPUnit. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!