Tutorial PyUnit: Python Kerangka Pengujian Unit (dengan Contoh)

โšก Ringkasan Cerdas

Python Pengujian unit memeriksa unit-unit kecil kode Anda secara terpisah untuk mendeteksi bug sejak dini. Di sini Anda akan mempelajari teknik pengujian unit, kerangka kerja PyUnit (unittest), kelas-kelas utamanya, cara mendesain kasus uji, dan contoh praktis.

  • ๐Ÿงช Apa itu: Pengujian unit memverifikasi unit kode kecil dan terisolasi untuk mendeteksi bug sejak dini.
  • ๐Ÿ”ฌ Teknik: TDD, stub, dan mock mengisolasi kode sehingga pengujian unit dilakukan secara independen.
  • ๐Ÿ Unit Py: PythonModul unittest bawaan (PyUnit) adalah port dari JUnit.
  • ๐Ÿงฑ Kelas utama: TestCase, TestSuite, TestLoader, TextTestRunner, dan TestResults.
  • ๐Ÿค– Bantuan AI: Alat AI seperti Copilot menghasilkan kasus uji unit secara instan.

Python Pengujian Unit

Apa itu Pengujian Unit?

Pengujian Unit in Python dilakukan untuk mengidentifikasi bug di awal tahap pengembangan aplikasi ketika bug tidak terlalu sering terjadi dan lebih murah untuk diperbaiki.

Pengujian unit adalah pengujian tingkat kode bernaskah yang dirancang Python untuk memverifikasi โ€œunitโ€ kecil fungsionalitas. Tes unit adalah kerangka kerja berorientasi objek yang didasarkan pada perlengkapan tes.

Python Teknik Pengujian Unit

Python Pengujian Unit terutama melibatkan pengujian modul tertentu tanpa mengakses kode dependen apa pun. Pengembang dapat menggunakan teknik seperti stub dan mocks untuk memisahkan kode menjadi โ€œunitโ€ dan menjalankan pengujian tingkat unit pada masing-masing bagian.

  • TDD Pengembangan Berbasis Tes: Pengujian Unit harus dilakukan bersamaan dengan Python, dan untuk itu pengembang menggunakan metode Test-Driven Development. Dalam metode TDD, Anda mendesain terlebih dahulu Python Tes unit dan baru kemudian Anda melanjutkan menulis kode yang akan mengimplementasikan fitur ini.
  • Rintisan dan Ejekan: Itu adalah dua teknik utama yang mensimulasikan metode palsu yang sedang diuji. A Potongan digunakan untuk mengisi beberapa ketergantungan yang diperlukan agar pengujian unit dapat berjalan dengan benar. A Mengejek di sisi lain adalah objek palsu yang menjalankan tes tempat kami menegaskan.

    Maksud dari kedua metode ini sama untuk menghilangkan pengujian semua dependensi suatu kelas atau fungsi.

Python Kerangka Pengujian Unit

Untuk mempermudah proses Pengujian Unit dan meningkatkan kualitas proyek Anda, disarankan Python Kerangka Pengujian Unit. Kerangka Pengujian Unit meliputi

Python Teknik Pengujian Unit

  • Unit Py: PyUnit mendukung perlengkapan, kasus pengujian, rangkaian pengujian, dan runner pengujian untuk pengujian kode secara otomatis. Di PyUnit, Anda dapat mengatur kasus uji ke dalam rangkaian dengan perlengkapan yang sama
  • Hidung: Plug-in bawaan Nose membantu Anda menangkap keluaran, cakupan kode, doctest, dll. Sintaks Nose cukup sederhana dan mengurangi hambatan dalam menulis tes. Itu meluas Python unittest untuk membuat pengujian lebih mudah.
  • Dokter : Skrip pengujian Doctest masuk dalam docstring dengan fungsi kecil di bagian bawah file. Doctest memungkinkan Anda menguji kode Anda dengan menjalankan contoh yang disertakan dalam dokumentasi dan memverifikasi bahwa contoh tersebut memberikan 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 a Python pelabuhan JUnit. Sebagai bagian dari Pyunit, dalam modul unittest terdapat lima kelas utama.

Pengujian Unit dengan PyUnit

  • kelas TestCase: Kelas TestCase memuat rutinitas pengujian dan memberikan kaitan 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 rangkaian yang ditentukan secara lokal atau dari file eksternal. Itu memancarkan objek testsuite yang memiliki suite dan case tersebut
  • Kelas TextTestRunner: Untuk menjalankan pengujian, ia menyediakan platform standar untuk menjalankan pengujian
  • Kelas TestResults: Ini menawarkan wadah standar untuk hasil tes

Merancang kasus uji untuk Python Pengujian menggunakan PyUnit

Unit test menyediakan kelas dasar, test case, yang dapat digunakan untuk membuat test case baru. Untuk merancang kasus uji, ada tiga rangkaian metode yang digunakan yaitu

Merancang kasus uji untuk Python

unittest.TestCase

setUp()
teardown()

skipTest(aMesg:string)
fail(aMesg:string)

id():string
shortDescription():string

Pada set pertama adalah kait sebelum dan sesudah tes. Metode setup() dimulai sebelum setiap rutinitas pengujian, dan pembongkaran() setelah rutinitas.

Kumpulan metode kedua mengontrol eksekusi pengujian. Kedua metode mengambil string pesan sebagai masukan, dan keduanya membatalkan pengujian yang sedang berlangsung. Namun 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 rutinitas pengujian. Dan metodenya singkatDescription() mengembalikan komentar docstr pada awal setiap pengujian rutin.

Python Contoh Pengujian Unit

Contoh di bawah ini menguji fungsi add() sederhana dengan modul unittest. Setiap metode yang diberi nama dengan awalan test_ berjalan secara otomatis, dan assertEqual memeriksa hasilnya terhadap nilai yang diharapkan.

import unittest

def add(a, b):
    return a + b

class TestAdd(unittest.TestCase):
    def test_add_positive(self):
        self.assertEqual(add(2, 3), 5)

    def test_add_negative(self):
        self.assertEqual(add(-1, -1), -2)

if __name__ == "__main__":
    unittest.main()

Simpan kode tersebut dan jalankan dengan perintah `python filename.py`. Unit test runner akan melaporkan berapa banyak tes yang berhasil atau gagal.

Keuntungan menggunakan Python Pengujian unit

  • Ini membantu Anda mendeteksi bug di awal siklus pengembangan
  • Ini membantu Anda menulis program yang lebih baik
  • Ini mudah disinkronkan dengan metode dan alat pengujian lainnya
  • Ini akan memiliki lebih sedikit bug
  • Lebih mudah untuk memodifikasinya di masa depan dengan konsekuensi yang lebih kecil

Pertanyaan Umum Demo Slot

Pengujian unit memverifikasi unit kode kecil, seperti sebuah fungsi, secara terisolasi. Pengujian ini menangkap bug sejak dini dalam pengembangan, ketika bug tersebut lebih murah dan mudah diperbaiki.

PyUnit adalah PythonKerangka kerja pengujian unit bawaan, tersedia sebagai modul unittest. Ini adalah port dari JUnit dan mendukung fixture, test case, suite, dan test runner.

Buat subkelas unittest.TestCase, tulis metode yang diawali dengan test_, dan gunakan pernyataan seperti assertEqual di dalamnya. Jalankan file dengan unittest.main() untuk mengeksekusi semua pengujian.

Fungsi setUp() dijalankan sebelum setiap metode pengujian untuk mempersiapkan fixture, sedangkan fungsi tearDown() dijalankan setelah setiap pengujian untuk membersihkan. Bersama-sama, keduanya menjaga agar pengujian tetap independen dan dapat diulang.

Stub menyediakan data tetap yang dibutuhkan oleh sebuah pengujian, sedangkan mock adalah objek palsu yang digunakan untuk melakukan assertion. Keduanya menggantikan dependensi nyata sehingga sebuah unit diuji secara terisolasi.

Asisten AI seperti GitHub Copilot menghasilkan kasus uji unit dari sebuah fungsi, menyarankan kasus ekstrem dan pernyataan, serta membuat tiruan (mock) untuk dependensi saat Anda menulis kode.

Ya. Alat berbasis AI dapat mengotomatiskan pembuatan rangkaian pengujian, menghasilkan pernyataan untuk keluaran yang diharapkan, dan meningkatkan cakupan kode dengan menyarankan pengujian untuk cabang yang belum diuji.

unittest adalah PythonFramework bawaan menggunakan kelas dan metode assert, sedangkan pytest adalah pustaka pihak ketiga dengan pernyataan assert yang lebih sederhana dan fixture yang lebih canggih. Keduanya menjalankan unit test.

Ringkaslah postingan ini dengan: