Chúng tôi biết docstring cung cấp thêm thông tin về hàm và các lớp trong Python. Chúng tôi cũng có thể sử dụng nó để kiểm tra các chức năng bằng học thuyết mô-đun. Học thuyết mô-đun thực thi mã bắt đầu bằng>>> và so sánh nó với đầu ra mong đợi.
Làm theo các bước dưới đây để viết một hàm với học thuyết.
-
Nhập học thuyết mô-đun.
-
Viết hàm với docstring. Bên trong chuỗi doc, hãy viết hai dòng sau để kiểm tra cùng một chức năng.
-
>>> function_name (* args).
-
Sản lượng mong đợi.
-
-
Viết mã chức năng.
-
Bây giờ, hãy gọi hàm doctest.testmod (name =function_name, verbose =True) để kiểm tra. Chúng tôi không thể xem kết quả kiểm tra nếu chi tiết được đặt thành Sai và tất cả các bài kiểm tra đều được thông qua. Tốt hơn nên đặt nó là True.
Ví dụ
Hãy viết một hàm đơn giản với doctest.
# importing the module import doctest # function def numbers_sum(*args) -> int: """ This function returns the sum of all the argumets Shell commands for testing incoking the function followed by expected output: >>> numbers_sum(1, 2, 3, 4, 5) 15 >>> numbers_sum(6, 7, 8) 21 """ return sum(args) # invoking the testmod function doctest.testmod(name='numbers_sum', verbose=True)
Nếu bạn chạy đoạn mã trên, bạn sẽ nhận được kết quả sau.
Trying: numbers_sum(1, 2, 3, 4, 5) Expecting: 15 ok Trying: numbers_sum(6, 7, 8) Expecting: 21 ok 1 items had no tests: numbers_sum 1 items passed all tests: 2 tests in numbers_sum.numbers_sum 2 tests in 2 items. 2 passed and 0 failed. Test passed. TestResults(failed=0, attempted=2)
Nếu bạn thấy đầu ra có chữ ok sau mỗi lần kiểm tra. Điều đó có nghĩa là sản lượng dự kiến và sản lượng thực tế được khớp với nhau. Bạn có thể kiểm tra kết quả thử nghiệm ở cuối đầu ra.
Ví dụ
Hãy xem điều gì sẽ xảy ra khi các bài kiểm tra không thành công. Chạy cùng một ví dụ với kết quả đầu ra sai.
# importing the module import doctest # function def numbers_sum(*args) -> int: """ This function returns the sum of all the argumets Shell commands for testing incoking the function followed by expected output: >>> numbers_sum(1, 2, 3, 4, 5) 10 >>> numbers_sum(6, 7, 8) 23 """ return sum(args) # invoking the testmod function doctest.testmod(name='numbers_sum', verbose=True)
Đầu ra
Nếu bạn thực hiện chương trình trên, bạn sẽ nhận được kết quả sau.
Trying: numbers_sum(1, 2, 3, 4, 5) Expecting: 10 ********************************************************************** File "__main__", line 10, in numbers_sum.numbers_sum Failed example: numbers_sum(1, 2, 3, 4, 5) Expected: 10 Got: 15 Trying: numbers_sum(6, 7, 8) Expecting: 23 ********************************************************************** File "__main__", line 12, in numbers_sum.numbers_sum Failed example: numbers_sum(6, 7, 8) Expected: 23 Got: 21 1 items had no tests: numbers_sum ********************************************************************** 1 items had failures: 2 of 2 in numbers_sum.numbers_sum 2 tests in 2 items. 0 passed and 2 failed. ***Test Failed*** 2 failures. TestResults(failed=2, attempted=2)
Nếu bạn xem kết quả kiểm tra, 2 cái là không đạt. Bạn cũng có thể kiểm tra mong đợi và thực tế đầu ra trong đầu ra.
Kết luận
Nếu bạn có bất kỳ nghi ngờ nào trong hướng dẫn, hãy đề cập đến chúng trong phần bình luận.