Menggunakan pengecualian penegasan boleh dengan mudah menegaskan pengecualian dalam rangka kerja ujian PHP Gunakan kaedah expectException() untuk mengisytiharkan jenis pengecualian yang dijangka akan dilemparkan Jika ia berlaku, ujian akan lulus, jika tidak, ia gagal. Menggunakan pengecualian penegasan meningkatkan kestabilan dan kebolehselenggaraan kes ujian, terutamanya apabila pengecualian dijangka.
Pengendalian Pengecualian PHP: Menggunakan Pengecualian Penegasan dalam Senario Ujian
Pengendalian pengecualian ialah teknik pengaturcaraan penting yang membantu anda mengendalikan ralat semasa pelaksanaan program. Apabila menulis penegasan dalam rangka kerja ujian PHP seperti PHPUnit, menggunakan pengendalian pengecualian boleh meningkatkan keteguhan dan kebolehselenggaraan kes ujian anda.
Cara menggunakan pengecualian penegasan
PHPUnit menyediakan set pengecualian penegasan untuk menegaskan apabila pengecualian dijangkakan. Pengecualian penegasan ini boleh didapati dalam tests/TestCase.php
. tests/TestCase.php
中找到。
要使用断言异常,您需要使用 expectException()
方法来声明您期望抛出的异常类型。例如:
use PHPUnit\Framework\TestCase; class MyTest extends TestCase { public function testExceptionIsThrown() { $this->expectException(\Exception::class); throw new \Exception(); } }
如果确实抛出了预期的异常类型,则测试会通过。但是,如果抛出了其他类型的异常,或者根本没有抛出异常,则测试将失败。
实战案例
让我们考虑一个将文件上传到服务器的函数:
function uploadFile(string $filePath) { if (!file_exists($filePath)) { throw new \Exception('File does not exist'); } // ... }
我们希望编写一个 PHPUnit 测试用例来断言当文件不存在时会抛出异常:
use PHPUnit\Framework\TestCase; class FileUploadTest extends TestCase { public function testFileDoesNotExistExceptionIsThrown() { $this->expectException(\Exception::class); uploadFile('non-existent-file.txt'); } }
运行此测试用例将抛出我们预期的 Exception
expectException()
untuk mengisytiharkan jenis pengecualian yang anda jangkakan untuk dilemparkan. Contohnya: rrreee Jika jenis pengecualian yang dijangkakan memang dilemparkan, ujian akan lulus. Walau bagaimanapun, jika jenis pengecualian lain dilemparkan, atau tiada pengecualian dilemparkan sama sekali, ujian akan gagal.
Kes Praktikal
🎜🎜Mari kita pertimbangkan fungsi yang memuat naik fail ke pelayan: 🎜rrreee🎜 Kami ingin menulis kes ujian PHPUnit yang menegaskan bahawa pengecualian akan dilemparkan apabila fail tidak wujud: 🎜rrreee🎜 Menjalankan kes ujian ini akan MelemparkanAtas ialah kandungan terperinci Pengendalian Pengecualian PHP: Menggunakan Pengecualian Penegasan dalam Senario Ujian. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!