Rumah > pembangunan bahagian belakang > tutorial php > Pengendalian Pengecualian PHP: Menggunakan Pengecualian Penegasan dalam Senario Ujian

Pengendalian Pengecualian PHP: Menggunakan Pengecualian Penegasan dalam Senario Ujian

WBOY
Lepaskan: 2024-06-01 11:58:56
asal
389 orang telah melayarinya

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 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();
    }
}
Salin selepas log masuk

如果确实抛出了预期的异常类型,则测试会通过。但是,如果抛出了其他类型的异常,或者根本没有抛出异常,则测试将失败。

实战案例

让我们考虑一个将文件上传到服务器的函数:

function uploadFile(string $filePath)
{
    if (!file_exists($filePath)) {
        throw new \Exception('File does not exist');
    }
    // ...
}
Salin selepas log masuk

我们希望编写一个 PHPUnit 测试用例来断言当文件不存在时会抛出异常:

use PHPUnit\Framework\TestCase;

class FileUploadTest extends TestCase
{
    public function testFileDoesNotExistExceptionIsThrown()
    {
        $this->expectException(\Exception::class);
        uploadFile('non-existent-file.txt');
    }
}
Salin selepas log masuk

运行此测试用例将抛出我们预期的 Exception

Untuk menggunakan pengecualian yang ditegaskan, anda perlu menggunakan kaedah 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 Melemparkan Pengecualian yang diharapkan dan ujian akan lulus. 🎜🎜🎜Kesimpulan🎜🎜🎜Menggunakan pengecualian tegas, anda boleh dengan mudah menegaskan pengecualian dalam rangka kerja ujian PHP anda. Ia membantu meningkatkan keteguhan dan kebolehselenggaraan kes ujian anda dan memastikan ujian anda gagal dengan betul apabila pengecualian dijangkakan. 🎜

Atas 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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan