Gunakan PHPUnit untuk pembangunan dipacu ujian dalam pembangunan PHP
Dengan perkembangan pesat industri perisian, pembangunan dipacu ujian (TDD) memainkan peranan yang semakin penting dalam proses pembangunan perisian. PHPUnit ialah salah satu rangka kerja ujian yang paling biasa digunakan dalam pembangunan PHP. Ia menyediakan set alat dan kaedah berguna yang boleh membantu pembangun menulis ujian unit berkualiti tinggi dan menyepadukannya ke dalam aplikasi PHP. Artikel ini akan memperkenalkan cara menggunakan PHPUnit untuk TDD dalam pembangunan PHP.
Mula-mula anda perlu memasang PHPUnit. Ia boleh dipasang melalui Composer, salah satu pengurus pakej paling popular untuk PHP. Mula-mula, anda perlu mencipta fail composer.json dalam direktori utama dan menambah kandungan berikut:
{ "require-dev": { "phpunit/phpunit": "^9.5" } }
Versi PHPUnit 9.5 dinyatakan di sini dan boleh ditukar mengikut keperluan. Seterusnya, gunakan arahan berikut untuk memasang PHPUnit:
$ composer install
Selepas pemasangan selesai, anda boleh mengesahkan sama ada PHPUnit berjaya dipasang dengan menggunakan arahan berikut:
$ ./vendor/bin/phpunit --version
Selepas PHPUnit dipasang, anda boleh mula menulis kes ujian. Kes ujian ialah satu set unit ujian yang digunakan untuk mengesahkan bahawa pelbagai bahagian fungsi kod sumber seperti yang diharapkan. Setiap kes ujian hendaklah mengandungi sekurang-kurangnya satu kaedah ujian, iaitu unit dalam kes ujian yang digunakan untuk mengesahkan kod. Kaedah ujian biasanya diuji menggunakan kaedah penegasan yang disediakan oleh PHPUnit.
Berikut ialah contoh mudah:
<?php use PHPUnitFrameworkTestCase; class MyTest extends TestCase { public function testAddition() { $this->assertEquals(2, 1+1); } }
Dalam contoh ini, kes ujian dinamakan MyTest dan mengandungi kaedah ujian testAddition(). Kaedah ujian menggunakan kaedah penegasan assertEquals() untuk mengesahkan sama ada 1 + 1 sama dengan 2. Untuk butiran lanjut tentang kaedah penegasan PHPUnit, lihat dokumentasi PHPUnit rasmi.
Selepas kes ujian ditulis, ia perlu dilaksanakan untuk mengesahkan bahawa kod berjalan seperti yang diharapkan. Kes ujian boleh dilaksanakan menggunakan arahan berikut:
$ ./vendor/bin/phpunit MyTest.php
Dalam arahan di atas, MyTest.php ialah nama fail kes ujian. Apabila kes ujian dilaksanakan, PHPUnit akan memuatkan fail secara dinamik dan melaksanakan kaedah ujian. Jika ujian lulus, mesej hijau dipaparkan jika ujian gagal, mesej merah dipaparkan.
Mocks and Stubs ialah dua lagi ciri berguna PHPUnit. Ia digunakan untuk mengejek objek dan fungsi untuk memastikan bahawa kod dilaksanakan dalam konteks yang betul.
Mocks ialah sejenis objek khas yang digunakan untuk mensimulasikan dan menguji kelakuan objek lain. Dalam PHPUnit, Mocks dibuat menggunakan kaedah getMock(). Berikut ialah contoh penggunaan Mocks:
<?php use PHPUnitFrameworkTestCase; class UserRepositoryTest extends TestCase { public function testGetUserById() { $user = new stdClass(); $user->id = 1; $user->name = 'John'; $repository = $this->getMock('UserRepository'); $repository->expects($this->once()) ->method('getUserById') ->with($this->equalTo(1)) ->will($this->returnValue($user)); $result = $repository->getUserById(1); $this->assertSame($user, $result); } }
Dalam kod di atas, gunakan kaedah getMock() untuk mencipta Mocks of UserRepository. Kemudian, gunakan kaedah expects() untuk menentukan kaedah yang perlu disimulasikan, dan gunakan kaedah with() untuk menentukan parameter input. Akhir sekali, gunakan kaedah will() untuk menentukan hasil operasi simulasi.
Stubs ialah alat lain yang serupa dengan Mocks untuk fungsi mengejek. Dalam PHPUnit, anda boleh menggunakan kod berikut untuk stubbing:
<?php use PHPUnitFrameworkTestCase; class MyTest extends TestCase { public function testMyFunction() { $stub = $this->getMockBuilder('SomeClass') ->getMock(); $stub->method('myFunction') ->willReturn('foo'); $this->assertSame('foo', $stub->myFunction()); } }
Dalam contoh ini, mula-mula gunakan kaedah getMockBuilder() untuk mencipta Mocks of SomeClass. Kemudian, gunakan kaedah kaedah() untuk menentukan fungsi yang perlu disimulasikan, dan gunakan kaedah willReturn() untuk menentukan hasil operasi simulasi.
PHPUnit menyediakan pembangun PHP dengan cara yang boleh dipercayai untuk menulis ujian unit berkualiti tinggi untuk memastikan kod berjalan seperti yang diharapkan. Dalam artikel ini, kami membincangkan cara menggunakan PHPUnit untuk pembangunan dipacu ujian dan cara mengejek objek dan fungsi menggunakan Mocks dan Stubs. Apabila menggunakan PHPUnit untuk pembangunan dipacu ujian, sentiasa ingat untuk menulis kes ujian sebelum menulis kod. Dalam kebanyakan kes, kes ujian yang ditulis dengan baik boleh memberikan kualiti kod yang lebih baik dan hasil yang lebih baik.
Atas ialah kandungan terperinci Cara menggunakan PHPUnit untuk pembangunan dipacu ujian dalam pembangunan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!