Doctest เป็นวิธีการทดสอบที่เรียบง่าย แต่มีประโยชน์สำหรับโปรแกรม Python เมื่อเปรียบเทียบกับการทดสอบหน่วยการเรียนรู้แล้วไม่ต้องใช้สคริปต์อิสระในการเขียนกรณีทดสอบ กรณีทดสอบสามารถเขียนในข้อมูลเอกสาร (เนื้อหาภายในเครื่องหมายคำพูดเดี่ยว / คู่สามครั้ง) ของฟังก์ชัน Python จากนั้นกรณีเหล่านี้สามารถทดสอบฟังก์ชันโดยใช้doctestโมดูล
doctestค้นหาโมดูลสำหรับชิ้นส่วนของข้อความที่มีลักษณะเหมือนการประชุมหลามโต้ตอบและจากนั้นดำเนินการเซสชันเหล่านั้นเพื่อตรวจสอบว่าพวกเขาทำงานตรงตามที่แสดง ( เอกสาร python )
มาใช้คำสั่งในการabs()ทำงานที่ผิด:
ผลลัพธ์มีดังต่อไปนี้:
ดังตัวอย่างข้างต้นหลักคำสอนเป็นวิธีที่สะดวกและง่ายในการทดสอบฟังก์ชัน
สรุปมีเพียง 3 ขั้นตอน:
doctestโมดูลนำเข้าdoctest.testmod()เพื่อเรียกใช้หลักหากผ่านกรณีทดสอบทั้งหมดdoctestจะไม่พิมพ์อะไรเลย
ในมีเป็นตัวแปรที่สำคัญที่เรียกว่าdoctest.testmodverbose
โดยตั้งค่าเป็นFalseค่าเริ่มต้นซึ่งหมายความว่าเมื่อเรียกใช้การทดสอบเฉพาะกรณีที่ล้มเหลวเท่านั้นที่จะแสดงข้อมูลโดยละเอียด Trueหากคุณต้องการที่จะได้รับข้อมูลที่ครบถ้วนของทุกกรณีเพียงแค่ตั้งค่าให้
if __name__ == '__main__':
doctest.testmod(verbose=True)
จริงๆแล้วเราไม่ต้องเขียนif __name__ == '__main__':บล็อคก็ได้ เราสามารถเรียกใช้ doctest ได้โดยตรงในเทอร์มินัล:
$ python -m doctest wrong_abs.py
$ python -m doctest -v wrong_abs.py
บางครั้งมันอาจจะยุ่งเล็กน้อยถ้าเราใส่ทั้งความคิดเห็นและกรณีทดสอบด้านล่างฟังก์ชัน ไม่ต้องกังวลเราสามารถนำกรณีทดสอบทั้งหมดไปไว้ในไฟล์อิสระและยังคงรันหลักคำสอนได้อย่างสมบูรณ์แบบ
ตัวอย่างเช่นให้สร้างไฟล์ที่เรียกว่าtest_cases.txtและใส่กรณีทดสอบ "รูปแบบหลัก" ลงไป:
จากนั้นเรียกใช้หลักคำสั่งนี้:
python -m doctest test_cases.txt
Doctest เป็นวิธีทดสอบที่ใช้งานง่ายสำหรับโปรแกรม Python การใช้เทคนิคนี้อย่างดีสามารถช่วยให้คุณได้รับรหัสที่ปราศจากข้อบกพร่อง
ขอบคุณที่อ่าน.
กระทู้ที่เกี่ยวข้อง:
หกเทคนิคการดีบักสำหรับโปรแกรมเมอร์ Pythonบทช่วยสอน Python เพิ่มเติม:
บทช่วยสอน Python ขั้นสูงสุด (อัปเดตต่อไป)
เมื่อคุณส่งคำขอไปที่ facebook.com คอมพิวเตอร์ของคุณจะค้นหาชื่อโดเมนเพื่อแปลชื่อโดเมนนั้นเป็นที่อยู่ IP เพื่อให้คอมพิวเตอร์ของคุณสามารถเชื่อมต่อได้
คุณต้องเคยได้ยินเกี่ยวกับปลั๊กอิน ChatGPT อันทรงพลังใหม่ทั้งหมด เช่น เบราว์เซอร์ ตัวแปลรหัส ฯลฯ แต่มีปัญหา การเข้าถึงปลั๊กอินถูกจำกัดไว้เฉพาะรายการรอ และหลายคนไม่สามารถเข้าถึงได้
“หวัดดี Siri เล่น Me Dive โดย Olivia Dean” ในเดือนพฤษภาคม 2021 ฉันเริ่มฝึกงานที่ Future Academy Africa ในเมือง Akure ประเทศไนจีเรีย
[ทริกเกอร์การแจ้งเตือน: บทความนี้รวมถึงภาพหน้าจอของผู้คนที่ยกย่องฆาตกรจอร์แดน นีลี] ในที่สุดเจ้าหน้าที่บังคับใช้กฎหมายก็ได้ตั้งข้อหาแดเนียล เพนนี ชายผู้บีบคอจอร์แดน นีลีจนเสียชีวิตในข้อหาฆาตกรรมครั้งนั้น และอาจไม่เต็มใจนัก
ในโลกที่เชื่อมต่อถึงกันทุกวันนี้ ภัยคุกคามจากการโจมตีทางไซเบอร์นั้นแพร่หลายมากขึ้นกว่าเดิม อาชญากรไซเบอร์และผู้มีบทบาทในระดับชาติพยายามใช้ประโยชน์จากช่องโหว่และขโมยข้อมูลที่มีค่าอย่างต่อเนื่อง ซึ่งก่อให้เกิดความเสี่ยงที่สำคัญต่อองค์กรทุกขนาด
อาการคันในมือของฉันลามไปทั่วเมื่อฉันต่อรองราคากับร้านหนังสือในท้องถิ่นเพื่อซื้อหนังสืออีกเล่มหนึ่ง หนังสือเล่มนี้เหมือนกับหนังสืออื่นๆ ที่ฉันเพิ่งซื้อเมื่อเร็วๆ นี้ จะพบบัลลังก์บนกอง 'To Be Read' (TBR) ของฉัน; และถึงกระนั้นฉันก็ซื้อมัน