Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การทดสอบหน่วยใน Python โดยใช้ Unittest


ในบทความนี้ เราจะเรียนรู้เกี่ยวกับพื้นฐานของการทดสอบซอฟต์แวร์ด้วยความช่วยเหลือของโมดูลการทดสอบหน่วยที่มีอยู่ใน Python 3.x หรือก่อนหน้านี้ อนุญาตให้ใช้ระบบอัตโนมัติ แชร์การตั้งค่าและรหัสออกสำหรับการทดสอบ และการทดสอบอิสระสำหรับทุกเฟรมเวิร์ก

ในการทดสอบหน่วย เราใช้แนวคิดเชิงวัตถุที่หลากหลาย เราจะพูดถึงแนวคิดที่ใช้เป็นหลักบางส่วนที่นี่

  • ทดสอบ − เป็นคลาสพื้นฐานเฉพาะของการตอบสนองตามชุดของอินพุตที่กำหนด เราใช้คลาสพื้นฐานของการทดสอบหน่วยเช่น “TestCase ” เพื่อดำเนินการนี้

  • ชุดทดสอบ − ใช้เพื่อรวมกรณีทดสอบเข้าด้วยกันและดำเนินการพร้อมกัน

  • ผู้ทดสอบ − มันเป็นไปตามการดำเนินการตามผลลัพธ์ของงาน มีส่วนร่วมในการแสดงผลหลังจากดำเนินการงาน

  • ตัวทดสอบ − ทำหน้าที่เป็นพื้นฐานสำหรับกรณีทดสอบในสภาพแวดล้อมที่เกี่ยวข้อง

มาดูตัวอย่างพื้นฐานเพื่อดูว่าการทดสอบหน่วยทำงานอย่างไร

ตัวอย่าง

นำเข้า unittestclass TestStringMethods(unittest.TestCase):def test_upper(self):self.assertEqual('TUTOR'.lower(), 'tutor') def test_islower(self):self.assertTrue('tutor'.islower() )) self.assertFalse('Tutor'.islower()) ถ้า __name__ =='__main__':unittest.main()

ผลลัพธ์

<ก่อนหน้า>...--------------------------------------------- ------------------- ทำการทดสอบ 2 ครั้งใน 0.000sOK

การทดสอบหน่วยใน Python โดยใช้ Unittest

ที่นี่เราขยายคลาสการทดสอบหน่วยในรูปแบบของการสืบทอดเดี่ยว ที่นี่เราใช้วิธีการในตัวเช่น assertEqual() , assertTrue() &assertFalse()

assertEqual() ใช้สำหรับตรวจสอบ/เปรียบเทียบผลลัพธ์กับผลลัพธ์

assertTrue() ใช้เพื่อตรวจสอบว่าเงื่อนไขที่กำหนดเป็นจริงหรือไม่

assertFalse() ใช้เพื่อตรวจสอบว่าเงื่อนไขที่กำหนดนั้นเป็นเท็จหรือไม่

ผลลัพธ์ของรหัสข้างต้นสามารถอยู่ในรูปแบบสามรูปแบบ -

ตกลง – สิ่งนี้บ่งชี้ว่าการทดสอบทั้งหมดที่สร้างขึ้นได้ดำเนินการสำเร็จแล้ว

ล้มเหลว – แสดงว่ากรณีทดสอบล้มเหลวและมีข้อยกเว้น AssertionError

ข้อผิดพลาด – สิ่งนี้บ่งชี้ว่าการทดสอบทำให้เกิดข้อยกเว้น/ข้อผิดพลาด

เราสามารถใช้มัณฑนากร @unittest.skip()

ตัวอย่าง

นำเข้า unittestclass 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()) ถ้า __name__ =='__main__':unittest.main()

ผลลัพธ์

<ก่อนหน้า>...--------------------------------------------- -------------------- ทำการทดสอบ 2 ครั้งใน 0.000sOK (ข้าม =2)

บทสรุป

ในบทความนี้ เราได้เรียนรู้เกี่ยวกับการทดสอบหน่วยใน Python โดยใช้โมดูล unittest ใน Python 3.x หรือก่อนหน้านั้น