Tutorial PyUnit:Kerangka Pengujian Unit Python (dengan Contoh)
Apa itu Pengujian Unit?
Pengujian Unit di Python dilakukan untuk mengidentifikasi bug di awal tahap pengembangan aplikasi saat bug tidak terlalu sering muncul dan lebih murah untuk diperbaiki.
Tes unit adalah tes tingkat kode skrip yang dirancang dengan Python untuk memverifikasi fungsionalitas "unit" kecil. Pengujian unit adalah kerangka kerja berorientasi objek yang didasarkan pada perlengkapan pengujian.
Teknik Pengujian Unit Python
Pengujian Unit Python terutama melibatkan pengujian modul tertentu tanpa mengakses kode dependen apa pun. Pengembang dapat menggunakan teknik seperti rintisan dan tiruan untuk memisahkan kode menjadi "unit" dan menjalankan pengujian tingkat unit pada masing-masing bagian.
TDD Pengembangan Berbasis Tes: Pengujian Unit harus dilakukan bersama dengan Python, dan untuk itu pengembang menggunakan metode Pengembangan Berbasis Uji. Dalam metode TDD, pertama-tama Anda mendesain pengujian Unit Python dan baru kemudian Anda melanjutkan penulisan kode yang akan mengimplementasikan fitur ini.
Stub dan Mock: Mereka adalah dua teknik utama yang mensimulasikan metode palsu yang sedang diuji. Sebuah Stub digunakan untuk mengisi beberapa ketergantungan yang diperlukan agar pengujian unit berjalan dengan benar. Sebuah Mock di sisi lain adalah objek palsu yang menjalankan tes di mana kami menempatkan pernyataan.
Maksud dari kedua metode sama untuk menghilangkan pengujian semua dependensi kelas atau fungsi.
Kerangka Pengujian Unit Python
Untuk mempermudah proses Pengujian Unit dan meningkatkan kualitas proyek Anda, direkomendasikan Kerangka Pengujian Unit Python. Kerangka kerja Pengujian Unit mencakup
PyUnit: PyUnit mendukung perlengkapan, kasus uji, rangkaian pengujian, dan runner pengujian untuk pengujian kode otomatis. Di PyUnit, Anda dapat mengatur kasus uji ke dalam suite dengan perlengkapan yang sama
Hidung: Plug-in bawaan Nose membantu Anda dengan pengambilan output, cakupan kode, doctests, dll. Sintaks Nose cukup sederhana dan mengurangi hambatan untuk menulis tes. Ini memperluas unittest Python untuk membuat pengujian lebih mudah.
Dokter : Skrip pengujian Doctest masuk dalam docstring dengan fungsi kecil di bagian bawah file. Doctest memungkinkan Anda untuk menguji kode Anda dengan menjalankan contoh yang disertakan dalam dokumentasi dan memverifikasi bahwa mereka mengembalikan hasil yang diharapkan. Kasus penggunaan doctest kurang detail dan tidak menangkap kasus khusus. Mereka berguna sebagai dokumentasi ekspresif dari kasus penggunaan utama modul dan komponennya.
Pengujian Unit dengan PyUnit
Pyunit adalah port Python dari JUnit. Sebagai bagian dari Pyunit, dalam modul unittest ada lima kelas kunci.
Kelas TestCase :Kelas TestCase menanggung rutinitas pengujian dan memberikan pengait untuk membuat setiap rutinitas dan pembersihan setelahnya
Kelas TestSuite :Ini berfungsi sebagai wadah koleksi, dan dapat memiliki beberapa objek testcase dan beberapa objek testsuites
Kelas TestLoader :Kelas ini memuat kasus uji dan suite yang ditentukan secara lokal atau dari file eksternal. Itu memancarkan objek testsuite yang memiliki suite dan kasing tersebut
Kelas TextTestRunner :Untuk menjalankan pengujian, platform ini menyediakan platform standar untuk menjalankan pengujian
Kelas TestResults :Menawarkan wadah standar untuk hasil pengujian
Merancang kasus uji untuk Pengujian Python menggunakan PyUnit
Tes unit menyediakan kelas dasar, kasus uji, yang dapat digunakan untuk membuat kasus uji baru. Untuk merancang test case, ada tiga set metode yang digunakan yaitu
Pada set pertama adalah pre dan post test hooks. Metode setup() dimulai sebelum setiap tes rutin, teardown() setelah rutinitas.
Kumpulan metode kedua mengontrol eksekusi tes. Kedua metode mengambil string pesan sebagai input, dan keduanya membatalkan pengujian yang sedang berlangsung. Tetapi metode skiptest() membatalkan pengujian saat ini sedangkan metode fail() gagal sepenuhnya.
Metode terakhir atau ketiga membantu menentukan tes. Metode id() mengembalikan string yang terdiri dari nama objek testcase dan rutin pengujian. Dan metode shortDescription() mengembalikan komentar docstr pada awal setiap tes rutin.
Keuntungan menggunakan pengujian Unit Python
Ini membantu Anda mendeteksi bug di awal siklus pengembangan
Ini membantu Anda menulis program yang lebih baik
Ini disinkronkan dengan mudah dengan metode dan alat pengujian lainnya
Ini akan memiliki lebih sedikit bug
Lebih mudah untuk memodifikasi di masa depan dengan konsekuensi yang sangat sedikit