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

Kiểm tra đơn vị bằng Python bằng Unittest

Trong bài viết này, chúng ta sẽ tìm hiểu về các nguyên tắc cơ bản của kiểm thử phần mềm với sự trợ giúp của mô-đun kiểm thử đơn vị có sẵn trong Python 3.x. Hoặc sớm hơn. Nó cho phép tự động hóa, chia sẻ mã thiết lập và thoát cho các bài kiểm tra và các bài kiểm tra độc lập cho mọi khuôn khổ.

Trong các bài kiểm tra đơn vị, chúng tôi sử dụng nhiều khái niệm hướng đối tượng. Chúng ta sẽ thảo luận về một số khái niệm được sử dụng chính ở đây.

  • Hộp thử nghiệm - Đây là lớp cơ sở đáp ứng cụ thể phù hợp với một tập hợp các đầu vào nhất định. Chúng tôi sử dụng lớp cơ sở của bài kiểm tra đơn vị, tức là “ TestCase ”Để triển khai hoạt động này.

  • Trang web thử nghiệm - Nó được sử dụng để kết hợp các trường hợp kiểm thử lại với nhau và thực thi chúng đồng thời.

  • Testrunner - Nó tuân theo việc thực hiện các nhiệm vụ dựa trên kết quả. Nó liên quan đến việc hiển thị kết quả sau khi thực hiện các tác vụ.

  • Lịch thi đấu - Nó đóng vai trò là cơ sở cho các trường hợp thử nghiệm trong môi trường liên kết.

Bây giờ, hãy làm một ví dụ cơ bản để xem thử nghiệm đơn vị hoạt động như thế nào.

Ví dụ

import unittest
class TestStringMethods(unittest.TestCase):
   def test_upper(self):
      self.assertEqual('TUTOR'.lower(), 'tutor')
   def test_islower(self):
      self.assertTrue('tutor'.islower())
      self.assertFalse('Tutor'.islower())
if __name__ == '__main__':
   unittest.main()

Đầu ra

...
---------------------------------------------------------------

Ran 2 tests in 0.000s
OK

Kiểm tra đơn vị bằng Python bằng Unittest

Ở đây chúng tôi mở rộng lớp kiểm thử đơn vị ở dạng kế thừa đơn. Ở đây, chúng tôi đã sử dụng các phương thức tích hợp như khẳng địnhEqual (), khẳng địnhTrue () &khẳng địnhFalse ()

khẳng địnhEqual () được sử dụng để xác thực / so sánh đầu ra với kết quả

khẳng địnhTrue () được sử dụng để xác minh rằng điều kiện đã cho là Đúng hay không.

khẳng địnhFalse () được sử dụng để xác minh rằng điều kiện đã cho là Sai hay không.

Đầu ra của đoạn mã trên có thể ở ba dạng -

Được - Điều này cho thấy rằng tất cả các thử nghiệm được tạo đã thực thi thành công

THẤT BẠI - Điều này cho biết một trong hai trường hợp thử nghiệm đã không thành công và một ngoại lệ AssertionError được đưa ra.

LỖI - Điều này chỉ ra rằng thử nghiệm tạo ra một ngoại lệ / lỗi.

Chúng ta có thể sử dụng decorator @ unittest.skip ()

Ví dụ

import unittest
class TestString(unittest.TestCase):
   @unittest.skip("check skipped tests")
   def test_upper(self):
      self.assertEqual('TUTOR'.lower(), 'tutor')
   def test_islower(self):
      self.assertTrue('tutor'.islower())
      self.assertFalse('Tutor'.islower())
if __name__ == '__main__':
   unittest.main()

Đầu ra

...
---------------------------------------------------------------
-
Ran 2 tests in 0.000s
OK (skipped=2)

Kết luận

Trong bài viết này, chúng ta đã tìm hiểu về Kiểm thử đơn vị trong Python bằng cách sử dụng mô-đun đơn nhất trong Python 3.x. Hoặc sớm hơn.