เรารู้ docstring ให้ข้อมูลเพิ่มเติมเกี่ยวกับฟังก์ชันและคลาสใน Python เรายังสามารถใช้สำหรับทดสอบฟังก์ชันโดยใช้ doctest โมดูล. ปริญญาเอก โมดูลรันโค้ดที่ขึ้นต้นด้วย>>> และเปรียบเทียบกับผลลัพธ์ที่คาดไว้
ทำตามขั้นตอนด้านล่างเพื่อเขียนฟังก์ชันด้วย doctest.
-
นำเข้า doctest โมดูล
-
เขียนฟังก์ชันด้วย docstring ภายในเอกสาร ให้เขียนสองบรรทัดต่อไปนี้เพื่อทดสอบฟังก์ชันเดียวกัน
-
>>>function_name(*args)
-
คาดหวัง ผลผลิต
-
-
เขียนโค้ดฟังก์ชัน
-
ตอนนี้ ให้เรียกใช้ฟังก์ชัน doctest.testmod(name=function_name, verbose=True) สำหรับการทดสอบ เราไม่สามารถเห็นผลการทดสอบได้หาก verbose ตั้งค่าเป็น False และผ่านการทดสอบทั้งหมด ตั้งเป็น True ดีกว่า
ตัวอย่าง
มาเขียนฟังก์ชันง่ายๆ กับ 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)
หากคุณเรียกใช้โค้ดข้างต้น คุณจะได้ผลลัพธ์ดังต่อไปนี้
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)
หากคุณเห็นผลลัพธ์ แสดงว่ามีคำว่า ตกลง หลังจากการทดสอบแต่ละครั้ง นั่นหมายถึงผลลัพธ์ที่คาดหวังและผลลัพธ์จริงตรงกัน คุณสามารถตรวจสอบผลการทดสอบได้ที่ส่วนท้ายของผลลัพธ์
ตัวอย่าง
มาดูกันว่าจะเกิดอะไรขึ้นเมื่อการทดสอบล้มเหลว เรียกใช้ตัวอย่างเดียวกันกับเอาต์พุตที่ไม่ถูกต้อง
# 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)
ผลลัพธ์
หากคุณรันโปรแกรมข้างต้น คุณจะได้ผลลัพธ์ดังต่อไปนี้
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)
หากคุณเห็นผลการทดสอบ แสดงว่าล้มเหลว 2 รายการ คุณยังสามารถตรวจสอบ คาดหวัง และ ของจริง เอาต์พุตในเอาต์พุต
บทสรุป
หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น