Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Ujian Python |. Mencipta ujian unit dalam python

Ujian Python |. Mencipta ujian unit dalam python

王林
王林ke hadapan
2023-04-11 19:37:151690semak imbas

Sebagai pembangun atau pengaturcara, setiap kali anda menulis kod, satu perkara sering diabaikan: ujian. Pengujian adalah sebahagian daripada pembangunan dan anda harus menguji aplikasi anda dengan teliti untuk memastikan ia memenuhi fungsi yang diperlukan.

Mari kita mulakan dengan sebab kita perlu menguji:

1 Kurangkan keperluan untuk ujian manual

Oleh kerana kes ujian telah ditulis terlebih dahulu, tidak ada sebab sebenar untuk dilakukan. mereka lagi Ujian manual. Selalunya, terutamanya dengan aplikasi besar, anda perlu menjalankan banyak peringkat dalam perisian anda untuk menguji sama ada ciri berfungsi. Ini boleh dielakkan melalui ujian. Bayangkan anda perlu menggunakan input khusus setiap kali anda menjalankan aplikasi anda. Dengan ujian, ini akan dimasukkan secara automatik setiap kali ia dijalankan.

2. Membolehkan struktur kod yang lebih baik

Mencipta kes ujian sebelum pembangunan adalah amalan terbaik. Ini memaksa anda untuk memikirkan sistem secara keseluruhan sebelum memulakan pembangunan.

3. Membolehkan ujian yang lebih pantas dalam jangka masa panjang

Semasa pengekodan, pelaksanaan fungsi boleh berubah, tetapi output tetap sama. Daripada menguji fungsi secara manual apabila pelaksanaannya berubah, anda hanya boleh melaksanakan kes ujian tertentu yang boleh menjalankan berbilang kes ujian sekaligus.

Bermula

Kami akan menumpukan pada satu jenis ujian tertentu, ujian unit. Jenis ujian khusus ini digunakan untuk menguji unit kecil kod, seperti fungsi atau kelas.

Untuk membuat ujian unit, kami akan menggunakan ujian unit perpustakaan standard python. Kaedah mencipta kes ujian ini menggunakan OOP (Pengaturcaraan Berorientasikan Objek) dengan mencipta kelas yang mengandungi semua kes ujian. Ini akan membolehkan kami menjalankan semua kes ujian dalam kelas sekaligus.

Nota: Anda boleh menggunakan mana-mana IDE atau editor teks yang anda kenali (IDE python lalai boleh digunakan). Untuk melakukan ini, saya akan menunjukkan menggunakan Visual Studio Code dengan sambungan python.

Mula-mula kami akan mengimport perpustakaan ujian unit kami:

import unittest

Sekarang buat pengisytiharan kelas kami:

class TestingClass(unittest.TestCase):

Nota (unittest.TestCase) dalam python It's inheritance. Menyediakan kefungsian kepada kelas.

Tambah fungsi pertama dalam kelas:

Ujian Python |. Mencipta ujian unit dalam python

self.assertEqual ialah kaedah yang disediakan oleh kelas yang diwarisi sebelum ini (unittest.TestCase). Kaedah ini menguji sama ada dua pembolehubah mempunyai nilai yang sama.

Tambahkan pelari ujian kami. Inilah yang menjadikan ujian unit kami dijalankan:

unittest.main()

Beginilah rupa kod siap:

Ujian Python |. Mencipta ujian unit dalam python

Kod di atas menunjukkan Ujian sama ada 9 + 1 sama dengan 11. Jika anda tahu matematik asas, anda harus tahu bahawa 9+1 = 10. Oleh itu, kes ujian ini akan gagal.

Output:

Ujian Python |. Mencipta ujian unit dalam python

Anda sepatutnya telah menekanya. Gagal!

Penyelesaiannya mudah. Ubah suai kod kepada:

test_var = 9 + 2

Ujian Python |. Mencipta ujian unit dalam python

Output:

Ujian Python |. Mencipta ujian unit dalam python

Uji fungsi luaran

Untuk Untuk menguji di luar fungsi, contoh sebelumnya mungkin tidak realistik. Mari gantikan nilai test_var dengan nilai daripada fungsi. Kami akan menambah pengisytiharan fungsi di bahagian atas fail.

Ujian Python |. Mencipta ujian unit dalam python

Fungsi ini menambah dua nombor. Gantikan 9 + 2 dengan panggilan fungsi add(9,2) dan jalankan kod.

Ujian Python |. Mencipta ujian unit dalam python

Setakat ini kami hanya melaksanakan satu kes ujian. Setiap fungsi/kaedah dalam TestingClass (dalam kes ini kedua-duanya adalah sama) mewakili kes ujian.

Mari tambah satu lagi kes ujian test_multiple_num_addition.

Ujian Python |. Mencipta ujian unit dalam python

NOTA: Semua kes ujian yang dibuat hendaklah mempunyai perkataan "ujian" didahului dengan nama mereka, jika tidak, pelari ujian tidak akan mengenalinya.

Kod anda sepatutnya kelihatan seperti ini:

Ujian Python |. Mencipta ujian unit dalam python

Jalankan:

Ujian Python |. Mencipta ujian unit dalam python

Ini jelas akan gagal kerana parameter fungsi hanya menerima dua argumen. Tetapi bagaimana jika kita benar-benar mahu menambah lebih banyak nombor? asterisk parameter nilai (*). Ini membolehkan anda memasukkan berbilang parameter dan membolehkan nilai disimpan sebagai tupel.

Kod sebelum pelaksanaan:

Ujian Python |. Mencipta ujian unit dalam python

Pelaksanaan:

Ujian Python |. Mencipta ujian unit dalam pythonPelaksanaan berjaya!

Meletakkan asterisk sebelum pembolehubah parameter fungsi dipanggil parameter bukan kata kunci.

Ringkasan Ujian Python |. Mencipta ujian unit dalam python

Percubaan ujian mungkin membawa keteguhan tambahan kepada kod. Ia juga boleh mengubah cara anda melakukan pembangunan. Mempunyai minda ujian memastikan lebih sedikit pepijat dalam pengeluaran dan kurang ujian manual berulang semasa pembangunan.

*Pautan asal: https://medium.com/swlh/python-testing-a8156d022eef

Atas ialah kandungan terperinci Ujian Python |. Mencipta ujian unit dalam python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:51cto.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam