Amalan terbaik liputan ujian unit PHP termasuk: menggunakan alat CodeCoverage PHPUnit, mengasingkan ujian unit, menggunakan objek Mock dan Stubs, meliputi semua cawangan dan laluan, dan menggunakan penjana automatik. Melalui amalan terbaik ini, anda boleh meningkatkan kualiti dan kebolehpercayaan aplikasi anda.
Pengujian Unit PHP: Amalan Terbaik untuk Liputan Ujian
Dalam pembangunan perisian, liputan ujian ialah ukuran keberkesanan suite ujian. Ia mewakili peratusan kod yang diuji. Liputan ujian tinggi membantu meningkatkan kualiti dan kebolehpercayaan aplikasi anda. Berikut ialah beberapa amalan terbaik untuk meningkatkan liputan ujian untuk ujian unit PHP:
Gunakan alat CodeCoverage PHPUnit
PHPUnit menyediakan alat CodeCoverage terbina dalam yang boleh menjana fail dan baris yang diliputi semasa pelaksanaan ujian. Untuk menggunakannya, tambahkan kod berikut dalam fail konfigurasi PHPUnit.xml:
<phpunit backupGlobals="false" backupStaticAttributes="false" bootstrap="vendor/autoload.php" colors="true" verbose="true" coverageClover="coverage.clover"> </phpunit>
Ujian unit terpencil
Ujian unit terpencil menguji setiap kaedah atau kelas hanya dalam persekitaran terpencil. Ini boleh dicapai menggunakan kaedah @dataProvider
注解或 PHPUnit 的 setUp()
和 tearDown()
.
public function dataProvider() { return [ ['input' => 1, 'expected' => 2], ['input' => 2, 'expected' => 4] ]; } /** * @dataProvider dataProvider */ public function testSum(int $input, int $expected) { $this->assertEquals($expected, $this->sum($input)); }
Menggunakan Objek Mock dan Stubs
Ojek dan Stub boleh digunakan untuk mengejek kebergantungan, dengan itu mengasingkan ujian unit dan meningkatkan liputan ujian.
$calculatorMock = $this->createMock(Calculator::class); $calculatorMock->expects($this->once()) ->method('sum') ->with(1, 2) ->will($this->returnValue(3)); $this->assertEquals(3, $calculator->sum(1, 2));
Meliputi semua cawangan dan laluan
Pastikan ujian anda meliputi semua laluan dan cawangan kod yang mungkin. Gunakan pernyataan bersyarat, gelung dan pengendalian pengecualian untuk meningkatkan kerumitan ujian anda.
Gunakan Penjana Auto
Kod ujian boleh dijana secara automatik menggunakan alatan seperti PhpMetrics dan PHPCS. Alat ini boleh menganalisis kod dan menjana kes ujian yang sepadan, dengan itu meningkatkan liputan.
Kes praktikal
Pertimbangkan kod PHP berikut:
<?php class Calculator { public function sum(int $a, int $b) { if ($a < 0 || $b < 0) { throw new InvalidArgumentException('Input should be non-negative.'); } return $a + $b; } }
Berikut ialah ujian unit yang meliputi semua laluan kod:
<?php use PHPUnit\Framework\TestCase; class CalculatorTest extends TestCase { public function dataProvider() { return [ [-1, 2, 'InvalidArgumentException'], [1, -2, 'InvalidArgumentException'], [1, 2, 3] ]; } /** * @dataProvider dataProvider */ public function testSum(int $a, int $b, $expected) { $calculator = new Calculator(); if (is_a($expected, 'InvalidArgumentException')) { $this->expectException($expected); } $this->assertEquals($expected, $calculator->sum($a, $b)); } }
Atas ialah kandungan terperinci Pengujian Unit PHP: Amalan Terbaik untuk Liputan Ujian. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!