Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menegaskan Lemparan Pengecualian dalam Fungsi Python Menggunakan `assertRaises`?

Bagaimana untuk Menegaskan Lemparan Pengecualian dalam Fungsi Python Menggunakan `assertRaises`?

Linda Hamilton
Linda Hamiltonasal
2024-11-03 21:01:03532semak imbas

How to Assert Exception Throwing in Python Functions Using `assertRaises`?

Menguji Pengecualian dalam Fungsi Python dengan Penegasan

Menulis kod teguh selalunya melibatkan pengendalian pengecualian dengan sewajarnya. Memastikan fungsi membuang pengecualian yang dijangkakan adalah penting untuk menguji keupayaan pengaturcaraan pertahanan mereka.

Soalan: Bagaimanakah saya boleh menulis ujian unit yang menegaskan sama ada fungsi Python membuang pengecualian tertentu?

Jawapan: Gunakan kaedah assertRaises daripada modul ujian unit. Kaedah ini mengambil dua hujah: kelas pengecualian yang dijangkakan dan fungsi yang akan digunakan. Jika fungsi gagal membuang pengecualian yang dijangkakan di bawah ujian, ujian akan gagal.

Contoh:

<code class="python">import mymod
import unittest

class MyTestCase(unittest.TestCase):
    def test1(self):
        self.assertRaises(SomeCoolException, mymod.myfunc)</code>

Dalam contoh ini, kaedah ujian test1 menegaskan bahawa fungsi myfunc dari modul mymod membuang pengecualian jenis SomeCoolException apabila dipanggil. Ujian gagal jika pengecualian tidak dilemparkan.

Teknik ini ialah cara ringkas dan berkesan untuk mengesahkan keupayaan pengendalian pengecualian fungsi Python, memastikan ia berkelakuan seperti yang dimaksudkan dalam senario yang berbeza.

Atas ialah kandungan terperinci Bagaimana untuk Menegaskan Lemparan Pengecualian dalam Fungsi Python Menggunakan `assertRaises`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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