Kerangka UnitTest - Kerangka

'unittest' mendukung otomatisasi pengujian, berbagi pengaturan dan kode shutdown untuk pengujian, agregasi pengujian ke dalam koleksi, dan independensi pengujian dari kerangka pelaporan.

Modul unittest menyediakan kelas yang memudahkan untuk mendukung kualitas ini untuk serangkaian pengujian.

Untuk mencapai ini, unittest mendukung konsep penting berikut -

  • test fixture- Ini mewakili persiapan yang diperlukan untuk melakukan satu atau lebih tes, dan tindakan pembersihan asosiasi. Ini mungkin melibatkan, misalnya, membuat database sementara atau proxy, direktori, atau memulai proses server.

  • test case- Ini adalah unit pengujian terkecil. Ini memeriksa respons spesifik untuk sekumpulan input tertentu. unittest menyediakan kelas dasar,TestCase, yang dapat digunakan untuk membuat kasus uji baru.

  • test suite- Ini adalah kumpulan kasus uji, rangkaian uji, atau keduanya. Ini digunakan untuk menggabungkan pengujian yang harus dijalankan bersama. Rangkaian pengujian diimplementasikan oleh kelas TestSuite.

  • test runner- Ini adalah komponen yang mengatur pelaksanaan tes dan memberikan hasilnya kepada pengguna. Pelari dapat menggunakan antarmuka grafis, antarmuka tekstual, atau mengembalikan nilai khusus untuk menunjukkan hasil pelaksanaan tes.

Membuat Tes Unit

Langkah-langkah berikut dilibatkan dalam menulis tes unit sederhana -

Step 1 - Impor modul unittest dalam program Anda.

Step 2- Tentukan fungsi yang akan diuji. Dalam contoh berikut, fungsi add () harus diuji.

Step 3 - Buat testcase dengan membuat subclass unittest.TestCase.

Step 4- Tentukan tes sebagai metode di dalam kelas. Nama metode harus dimulai dengan 'test'.

Step 5- Setiap panggilan tes menegaskan fungsi kelas TestCase. Ada banyak jenis asserts. Contoh berikut memanggil fungsi assertEquals ().

Step 6 - Fungsi assertEquals () membandingkan hasil fungsi add () dengan argumen arg2 dan menampilkan assertionError jika perbandingan gagal.

Step 7 - Terakhir, panggil metode main () dari modul unittest.

import unittest
def add(x,y):
   return x + y
   
class SimpleTest(unittest.TestCase):
   def testadd1(self):
      self.assertEquals(add(4,5),9)
      
if __name__ == '__main__':
   unittest.main()

Step 8 - Jalankan skrip di atas dari baris perintah.

C:\Python27>python SimpleTest.py
.
----------------------------------------------------------------------
Ran 1 test in 0.000s
OK

Step 9 - Tiga hal berikut ini bisa menjadi hasil yang mungkin dari sebuah tes -

Sr Tidak Pesan & Deskripsi
1

OK

Tes berhasil. 'A' ditampilkan di konsol.

2

FAIL

Tes tidak lulus, dan memunculkan pengecualian AssertionError. 'F' ditampilkan di konsol.

3

ERROR

Tes ini memunculkan pengecualian selain AssertionError. 'E' ditampilkan di konsol.

Hasil ini ditampilkan di konsol dengan masing-masing '.', 'F' dan 'E'.

Antarmuka Baris Perintah

Modul unittest dapat digunakan dari baris perintah untuk menjalankan satu atau beberapa tes.

python -m unittest test1
python -m unittest test_module.TestClass
python -m unittest test_module.TestClass.test_method

unittest mendukung opsi baris perintah berikut. Untuk daftar semua opsi baris perintah, gunakan perintah berikut -

Python –m unittest -h

Sr Tidak Opsi & Deskripsi
1

-h, --help

Tunjukkan pesan ini

2

v, --verbose

Keluaran panjang

3

-q, --quiet

Output minimal

4

-f, --failfast

Berhenti pada kegagalan pertama

5

-c, --catch

Tangkap Control-C dan tampilkan hasil

6

-b, --buffer

Buffer stdout dan stderr selama pengujian berjalan