Petua dan amalan terbaik ujian unit fungsi PHP termasuk: Menulis kes ujian berasingan untuk setiap fungsi. Gunakan penegasan untuk mengesahkan hasil yang dijangkakan. Tutup senario input yang berbeza. Mengejek kebergantungan luar. Gunakan fungsi stub/objek olok-olok untuk ujian terpencil.
Petua Pengujian Unit dan Amalan Terbaik dalam Fungsi PHP
Pengujian unit ialah bahagian penting dalam mana-mana kitaran hayat pembangunan perisian, terutamanya ujian unit. Dalam PHP, kita boleh menulis dan menjalankan ujian unit dengan mudah menggunakan rangka kerja PHPUnit. Artikel ini akan meneroka beberapa petua dan amalan terbaik untuk menulis ujian unit yang cekap dan boleh dipercayai untuk fungsi PHP.
1. Tulis kes ujian berasingan untuk setiap fungsi
Setiap fungsi harus mempunyai kes ujian yang berasingan, yang boleh mengasingkan ujian dan mengelakkan saling bergantung. Dalam PHPUnit, anda boleh menggunakan anotasi @test
untuk mencipta kes ujian: @test
注解创建测试用例:
/** * @covers ::addNumbers */ public function testAddNumbers() { // 测试代码... }
2. 使用断言来验证预期结果
断言是验证函数输出是否符合预期的机制。PHPUnit 提供了各种断言方法,例如 assertEquals()
, assertTrue()
, assertFalse()
$this->assertEquals(3, addNumbers(1, 2)); $this->assertTrue(isPrime(7));
2 Gunakan penegasan untuk mengesahkan hasil yang dijangkakan
Penegasan ialah mekanisme untuk mengesahkan sama ada output fungsi memenuhi jangkaan. PHPUnit menyediakan pelbagai kaedah penegasan, sepertiassertEquals()
, assertTrue()
, assertFalse()
./** * @dataProvider addNumbersProvider */ public function testAddNumbersWithDataProvider($a, $b, $expected) { $this->assertEquals($expected, addNumbers($a, $b)); } public function addNumbersProvider() { return [ [1, 2, 3], [0, 0, 0], [-1, 1, 0] ]; }
3 Senario
Pengujian harus meliputi pelbagai senario input untuk fungsi, termasuk keadaan sempadan dan input yang tidak dijangka. Pengujian untuk input yang berbeza boleh dilaksanakan dengan mudah menggunakan ujian berparameter:$mockDb = $this->createMock(\PDO::class); $mockDb->expects($this->once()) ->method('query') ->withAnyParameters() ->will($this->returnValue(true));
4. Olok-olok kebergantungan luar
Fungsi mungkin bergantung pada kebergantungan luaran, seperti pangkalan data atau sistem fail. Untuk mengasingkan ujian, anda boleh menggunakan fungsi stub atau objek olok-olok untuk mensimulasikan kebergantungan ini:function sumNumbers(array $numbers) { $sum = 0; foreach ($numbers as $number) { $sum += $number; } return $sum; } class SumNumbersTest extends \PHPUnit\Framework\TestCase { public function testSumPositiveNumbers() { $this->assertEquals(6, sumNumbers([1, 2, 3])); } public function testSumNegativeNumbers() { $this->assertEquals(-6, sumNumbers([-1, -2, -3])); } public function testSumEmptyArray() { $this->assertEquals(0, sumNumbers([])); } }
Atas ialah kandungan terperinci Petua ujian unit dan amalan terbaik dalam fungsi PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!