Hướng dẫn PyUnit: Python Khung kiểm tra đơn vị (có ví dụ)

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

Kiểm tra đơn vị in Python được thực hiện để xác định sớm các lỗi trong giai đoạn phát triển của ứng dụng khi các lỗi ít tái diễn hơn và ít tốn kém hơn để sửa.

Kiểm thử đơn vị là kiểm thử cấp độ mã theo kịch bản được thiết kế bằng Python để xác minh một “đơn vị” chức năng nhỏ. Kiểm tra đơn vị là một khung hướng đối tượng dựa trên các thiết bị kiểm tra.

Python Kỹ thuật kiểm tra đơn vị

Python Kiểm tra đơn vị chủ yếu liên quan đến việc kiểm tra một mô-đun cụ thể mà không cần truy cập bất kỳ mã phụ thuộc nào. Các nhà phát triển có thể sử dụng các kỹ thuật như sơ khai và mô phỏng để tách mã thành các “đơn vị” và chạy thử nghiệm cấp đơn vị trên từng phần riêng lẻ.

  • TDD phát triển dựa trên thử nghiệm: Kiểm tra đơn vị nên được thực hiện cùng với Pythonvà để làm được điều đó, các nhà phát triển sẽ sử dụng phương pháp Phát triển dựa trên thử nghiệm. Trong phương pháp TDD, trước tiên bạn thiết kế Python Kiểm tra đơn vị và chỉ sau đó bạn mới tiếp tục viết mã sẽ triển khai tính năng này.
  • Sơ khai và giả: Chúng là hai kỹ thuật chính mô phỏng các phương pháp giả đang được thử nghiệm. MỘT Stub được sử dụng để điền vào một số phụ thuộc cần thiết để kiểm tra đơn vị chạy chính xác. MỘT Chế nhạo mặt khác là một đối tượng giả chạy các bài kiểm tra mà chúng tôi đặt khẳng định.

    Mục đích của cả hai phương pháp đều giống nhau là loại bỏ việc kiểm tra tất cả các phần phụ thuộc của một lớp hoặc hàm.

Python Khung kiểm tra đơn vị

Để làm cho quá trình Kiểm tra đơn vị dễ dàng hơn và cải thiện chất lượng dự án của bạn, bạn nên sử dụng Python Khung kiểm tra đơn vị. Khung kiểm tra đơn vị bao gồm

Python Kỹ thuật kiểm tra đơn vị

  • PyUnit: PyUnit hỗ trợ các thiết bị cố định, trường hợp thử nghiệm, bộ thử nghiệm và trình chạy thử nghiệm để kiểm tra mã tự động. Trong PyUnit, bạn có thể sắp xếp các trường hợp thử nghiệm thành các bộ có cùng đồ đạc
  • Mũi: Các plug-in tích hợp của Nose giúp bạn thu thập đầu ra, bao quát mã, tài liệu, v.v. Cú pháp của Nose khá đơn giản hơn và giảm bớt các rào cản đối với việc viết bài kiểm tra. Nó mở rộng Python unittest để làm cho việc kiểm tra dễ dàng hơn.
  • Bác sĩ : Tập lệnh kiểm tra Doctest có dạng chuỗi doc với chức năng nhỏ ở cuối tệp. Doctest cho phép bạn kiểm tra mã của mình bằng cách chạy các ví dụ có trong tài liệu và xác minh rằng chúng trả về kết quả mong đợi. Trường hợp sử dụng doctest ít chi tiết hơn và không nắm bắt được các trường hợp đặc biệt. Chúng hữu ích như một tài liệu biểu đạt về trường hợp sử dụng chính của mô-đun và các thành phần của nó.

Kiểm tra đơn vị với PyUnit

Pyunit là một Python cảng JUnit. Là một phần của Pyunit, trong mô-đun unittest có năm lớp chính.

Kiểm tra đơn vị với PyUnit

  • Lớp TestCase: Lớp TestCase mang các quy trình kiểm tra và cung cấp các móc nối để thực hiện từng quy trình và dọn dẹp sau đó
  • Lớp TestSuite: Nó phục vụ như một thùng chứa bộ sưu tập và nó có thể chứa nhiều đối tượng testcase và nhiều đối tượng testsuites
  • Lớp TestLoader: Lớp này tải các trường hợp và bộ thử nghiệm được xác định cục bộ hoặc từ một tệp bên ngoài. Nó phát ra một đối tượng testsuite sở hữu các bộ và trường hợp đó
  • Lớp TextTestRunner: Để chạy thử nghiệm, nó cung cấp một nền tảng tiêu chuẩn để thực hiện thử nghiệm
  • Lớp TestResults: Nó cung cấp một thùng chứa tiêu chuẩn cho kết quả kiểm tra

Thiết kế một trường hợp thử nghiệm cho Python Kiểm tra bằng PyUnit

Kiểm thử đơn vị cung cấp một lớp cơ sở, trường hợp kiểm thử, có thể được sử dụng để tạo trường hợp kiểm thử mới. Để thiết kế trường hợp thử nghiệm, có ba bộ phương pháp được sử dụng là

Thiết kế một trường hợp thử nghiệm cho Python

unittest.TestCase

setUp()
teardown()

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

id():string
shortDescription():string

Trong bộ đầu tiên là các móc kiểm tra trước và sau. Phương thức setup() bắt đầu trước mỗi quy trình kiểm tra, phương thức Tears() bắt đầu sau quy trình này.

Nhóm phương pháp thứ hai kiểm soát việc thực hiện kiểm thử. Cả hai phương pháp đều lấy chuỗi thông báo làm đầu vào và đều hủy quá trình kiểm tra đang diễn ra. Nhưng phương thức Skiptest() hủy bỏ thử nghiệm hiện tại trong khi phương thức Fail() thất bại hoàn toàn.

Phương pháp cuối cùng hoặc thứ ba giúp xác định bài kiểm tra. Phương thức id() trả về một chuỗi bao gồm tên của đối tượng testcase và quy trình kiểm tra. Và phương pháp ngắn gọnDescription() trả về nhận xét doctr khi bắt đầu mỗi quy trình kiểm tra.

Ưu điểm của việc sử dụng Python Kiểm tra đơn vị

  • Nó giúp bạn phát hiện lỗi sớm trong chu kỳ phát triển
  • Nó giúp bạn viết chương trình tốt hơn
  • Nó đồng bộ dễ dàng với các phương pháp và công cụ thử nghiệm khác
  • Nó sẽ có ít lỗi hơn
  • Việc sửa đổi trong tương lai sẽ dễ dàng hơn với rất ít hậu quả