Computer >> Máy Tính >  >> Lập trình >> Python

Kiểm thử đơn vị Python là gì?

Kiểm thử đơn vị là gì?

Kiểm thử đơn vị là một loại kiểm thử phần mềm trong đó từng thành phần riêng lẻ của hệ thống được kiểm tra. Kiểm thử đơn vị là thực hành quan trọng đối với các nhà phát triển. Nó đảm bảo rằng mọi thành phần của phần mềm đang hoạt động thích hợp như mong đợi. Kiểm thử đơn vị chủ yếu được thực hiện bởi các nhà phát triển trong giai đoạn viết mã của quá trình phát triển phần mềm.

Kiểm thử đơn vị giúp dễ dàng khắc phục sự cố vì các nhà phát triển biết thành phần cụ thể nào của hệ thống hoặc phần mềm có vấn đề và các nhà phát triển có thể khắc phục đơn vị cụ thể đó.

Kiểm tra đơn vị Python

Con trăn có một gói tích hợp được gọi là unittest được sử dụng để thực hiện kiểm thử đơn vị. Kiểm thử đơn vị làm cho mã trở thành bằng chứng trong tương lai vì các nhà phát triển dự đoán các trường hợp có thể xảy ra trong đó mã có thể bị lỗi và mã được kiểm tra theo các trường hợp đó. được thử nghiệm với những trường hợp đó.

Mô-đun đơn nhất có thể được sử dụng bằng cách nhập mô-đun này vào chương trình python như sau.

 nhập mới nhất 

Ví dụ

Giả sử, chúng ta có một hàm đơn giản, tính diện tích của một hình vuông. Để tệp này được lưu với tên ‘area.py’.

 def area (a):return (a + a) 

Bây giờ, hãy viết mã kiểm tra đơn vị cho hàm trên, mã này sẽ cho chúng tôi biết liệu hàm của chúng tôi có cho kết quả đầu ra như mong đợi hay không. Để tệp mã kiểm tra đơn vị được lưu với tên “unit_test.py”.

unit_test.py &mnus;

 from area import * import unittestclass Testarea (unittest.TestCase):def test_area (self):self.assertAlmostEqual (area (5), 25) self.assertAlmostEqual (area (3), 9) self.assertAlmostEqual (area ( 4), 16) 

Tại đây, tệp chứa mã cần kiểm tra sẽ được nhập. Phương thức duy nhất khẳng địnhAlmostEqual () Được sử dụng. Điều này gọi hàm khu vực với một số đầu vào và tham số thứ hai chứa đầu ra dự kiến ​​sẽ được trả về bởi hàm. Nếu đầu ra được trả về bởi vùng () bằng với đầu ra mong đợi, thì thử nghiệm được vượt qua, nếu không thì không đạt.

Bây giờ, hãy chạy unit_test.py từ dấu nhắc lệnh để kiểm tra xem mã vùng () của chúng ta có vượt qua bài kiểm tra hay không.

Thực thi lệnh sau từ dấu nhắc lệnh để chạy tệp unit_test.

 python -m unittest unit_test.py 

Đầu ra

 C:\ Users \ Inderjit Singh \ Desktop>
 python -m unittest unit_test.pyF ======================================================================THẤT BẠI:test_area (unit_test.Testarea) - -------------------------------------------------- ------------------ Traceback (lần gọi gần đây nhất):Tệp "C:\ Users \ Inderjit Singh \ Desktop \ unit_test.py", dòng 7, trong bản test_area. khẳng địnhAlmostEqual (khu vực (5), 25) AssertionError:10! =25 trong vòng 7 vị trí (chênh lệch 15) ---------------------------- ------------------------------------------ Chạy 1 bài kiểm tra trong 0,001s =1) 

Mã của chúng tôi đã không thành công trong quá trình kiểm tra đơn vị. Nguyên nhân được đưa ra trong truy nguyên. Hàm đầu tiên self.assertAlmostEqual (vùng (5), 25) khiến mã của chúng ta bị lỗi. Vì hàm trả về 10 nhưng đầu ra mong đợi là 25.

Vì đây là một chức năng dễ dàng, chúng tôi biết cách khắc phục sự cố này. Mã vùng () của chúng tôi sai. Nó phải trả về (a * a) thay vì (a + a).

Hãy sửa mã vùng () và chạy lại kiểm tra đơn vị.

 def area (a):return (a * a) 

Chạy lại unit_test.py

 C:\ Users \ Inderjit Singh \ Desktop>
 python -m unittest unit_test.py .----------------------------- ----------------------------------------- Chạy 1 bài kiểm tra trong 0,000sOK  

Bây giờ, vì chúng tôi đã sửa mã trong vùng (), nó chạy thành công với trạng thái OK. Điều này đảm bảo rằng mã của chúng tôi chạy hoàn hảo theo tất cả các trường hợp được chỉ định trong tệp unit_test.py.

Đây là một ý tưởng rất đơn giản để đưa ra ý tưởng về thử nghiệm đơn vị. Có nhiều chức năng khác nhau trong mô-đun đơn nhất được sử dụng trong thử nghiệm đơn vị trong quá trình phát triển.