Memeriksa Pengecualian di Python Menggunakan doctest
Ketika menulis kode di Python, kita sering perlu memastikan bahwa fungsi kita berperilaku seperti yang diharapkan, terutama dalam hal penanganan kesalahan. Salah satu skenario umum adalah menguji apakah sebuah fungsi menghasilkan pengecualian dalam kondisi tertentu. Jika Anda menggunakan modul doctest
Python untuk melakukan pengujian, Anda mungkin bertanya: Bisakah saya memeriksa bahwa sebuah pengecualian dilempar dengan doctest
? Jawabannya adalah ya! Mari kita jelajahi bagaimana menggunakan doctest
untuk memverifikasi pengecualian dalam fungsi Python Anda.
Masalah: Menguji Pengecualian
Pertimbangkan sebuah fungsi bernama foo(x)
. Fungsi ini dirancang untuk menghasilkan pengecualian jika argumennya kurang dari nol. Pertanyaan utama di sini adalah bagaimana menulis sebuah doctest
yang mengonfirmasi bahwa fungsi tersebut berfungsi dengan benar dalam skenario ini. Secara khusus, ketika kita memasukkan nilai kurang dari nol, kita ingin memastikan bahwa sebuah pengecualian dihasilkan untuk menunjukkan bahwa sesuatu telah salah.
Contoh Fungsi
Berikut adalah versi sederhana dari fungsi foo(x)
:
def foo(x):
if x < 0:
raise ValueError("x harus tidak negatif")
return x
Solusi: Menulis doctest
Untuk membuat doctest
yang memeriksa pengecualian, kita akan menggunakan pendekatan berikut. Dalam doctest
kita, kita dapat menentukan bahwa kita mengharapkan sebuah pengecualian dihasilkan saat memanggil foo()
dengan nilai yang seharusnya memicu kesalahan tersebut. Berikut cara melakukannya langkah demi langkah:
Langkah 1: Tulis Doctest
Dalam docstring fungsi Anda, Anda dapat menambahkan sebuah kasus uji yang menunjukkan pengecualian yang diharapkan. Berikut adalah tampilannya:
def foo(x):
"""
Mengembalikan x jika tidak negatif.
Menghasilkan:
ValueError: Jika x < 0.
Contoh:
>>> foo(-1)
Traceback (panggilan terakhir yang paling baru):
...
ValueError: x harus tidak negatif
>>> foo(3)
3
"""
if x < 0:
raise ValueError("x harus tidak negatif")
return x
Langkah 2: Jalankan Doctest
Untuk menjalankan doctest
, sertakan cuplikan berikut di bagian bawah skrip Python Anda:
if __name__ == "__main__":
import doctest
doctest.testmod()
Langkah 3: Output yang Diharapkan
Ketika Anda menjalankan skrip, doctest
akan memproses contoh-contoh dalam docstring. Jika semuanya berfungsi dengan baik, Anda tidak akan melihat output (menunjukkan semua tes telah berhasil). Jika pengecualian tidak dihasilkan seperti yang diharapkan, doctest
akan melaporkan kesalahan.
Sumber Daya Tambahan
Untuk informasi lebih lanjut tentang cara menggunakan doctest
secara efektif dalam modul Anda, lihat dokumentasi modul doctest resmi.
Kesimpulan
Menggunakan doctest
untuk memverifikasi bahwa pengecualian dihasilkan dengan benar tidak hanya mungkin; itu sederhana! Dengan menambahkan beberapa baris dalam docstring fungsi Anda, Anda dapat secara efektif mendokumentasikan dan menguji perilaku kode Anda, memastikan bahwa ia mematuhi pola yang diharapkan. Apakah Anda sedang menulis fungsi baru atau menguji yang sudah ada, doctest
menawarkan cara yang kuat untuk menyertakan pengujian yang didorong oleh contoh secara langsung di samping kode Anda. Nikmati membuat kode Anda kokoh, dan selamat berkoding!