Apa itu Unit Testing?
Pengujian Unit dengan Python dilakukan untuk mengidentifikasi bug di awal tahap pengembangan aplikasi ketika bug lebih jarang muncul dan lebih murah untuk diperbaiki.
Uji unit adalah uji tingkat kode skrip yang dirancang dengan Python untuk memverifikasi fungsionalitas "unit" kecil. Tes unit adalah kerangka kerja berorientasi objek yang berbasis di sekitar perlengkapan tes.
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 bagian individu.
- TDD Pengembangan Berbasis Tes: Pengujian Unit harus dilakukan bersama dengan Python, dan untuk itu pengembang menggunakan metode Pengembangan Berbasis Tes. Dalam metode TDD, pertama-tama Anda mendesain pengujian Unit Python dan baru kemudian Anda melanjutkan menulis kode yang akan mengimplementasikan fitur ini.
- Stubs and Mocks: Mereka adalah dua teknik utama yang mensimulasikan metode palsu yang sedang diuji. Sebuah Stub digunakan untuk mengisi beberapa ketergantungan diperlukan untuk tes unit untuk berjalan dengan benar. A Mock di sisi lain adalah objek palsu yang menjalankan tes di mana kami menempatkan assert.
Maksud kedua metode sama untuk menghilangkan pengujian semua dependensi kelas atau fungsi.
Kerangka Pengujian Unit Python
Untuk membuat proses Pengujian Unit lebih mudah dan meningkatkan kualitas proyek Anda, direkomendasikan Kerangka Pengujian Unit Python. Kerangka Pengujian Unit meliputi
- PyUnit: PyUnit mendukung perlengkapan, kasus pengujian, rangkaian pengujian, dan pelari pengujian untuk pengujian otomatis kode. Di PyUnit, Anda dapat mengatur kasus uji ke dalam suite dengan perlengkapan yang sama
- Nose: Plug-in bawaan Nose membantu Anda menangkap output, cakupan kode, doctests, dll. Sintaks Nose cukup sederhana dan mengurangi hambatan penulisan tes. Ini memperluas Python unittest untuk membuat pengujian lebih mudah.
- Doctest: Script pengujian Doctest masuk ke 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 mendetail 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 JUnit. Sebagai bagian dari Pyunit, dalam modul unittest terdapat lima kelas kunci.
- Kelas TestCase : Kelas TestCase menanggung rutinitas pengujian dan memberikan pengait untuk membuat setiap rutinitas dan pembersihan setelahnya
- Kelas TestSuite : Ini melayani sebagai wadah koleksi, dan dapat memiliki beberapa objek testcase dan beberapa objek testsuites
- Kelas TestLoader : Kelas ini memuat kasus dan rangkaian pengujian yang ditentukan secara lokal atau dari file eksternal. Ini memancarkan objek testsuite yang memiliki suite dan case tersebut
- Kelas TextTestRunner : Untuk menjalankan pengujian, ia melayani platform standar untuk menjalankan pengujian
- Kelas TestResults : Ini menawarkan wadah standar untuk hasil tes
Mendesain kasus uji untuk Pengujian Python menggunakan PyUnit
Uji 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
unittest.TestCase
setUp()teardown()skipTest(aMesg:string)fail(aMesg:string)id():stringshortDescription():string
Di set pertama adalah hook tes sebelum dan sesudah. Metode setup () dimulai sebelum setiap rutinitas pengujian, teardown () setelah rutin.
Kumpulan metode kedua mengontrol eksekusi pengujian. Kedua metode tersebut mengambil string pesan sebagai masukan, dan keduanya membatalkan pengujian yang sedang berlangsung. Tetapi metode skiptest () membatalkan pengujian saat ini sementara metode fail () gagal sepenuhnya.
Metode terakhir atau ketiga membantu menentukan tes. Metode id () mengembalikan string yang terdiri dari nama objek testcase dan rutinitas pengujian. Dan metode shortDescription () mengembalikan komentar docstr pada permulaan setiap rutinitas pengujian.
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 kecil