ในบทความนี้ เราจะเรียนรู้เกี่ยวกับพื้นฐานของการทดสอบซอฟต์แวร์โดยใช้โมดูล unittest ที่มีอยู่ใน Python 3.x หรือก่อนหน้านี้ อนุญาตให้ใช้ระบบอัตโนมัติ แชร์การตั้งค่าและรหัสออกสำหรับการทดสอบ และการทดสอบอิสระสำหรับทุกเฟรมเวิร์ก
ในการทดสอบหน่วย เราใช้แนวคิดเชิงวัตถุที่หลากหลาย เราจะพูดถึงแนวคิดที่ใช้เป็นหลักบางส่วนที่นี่
-
ทดสอบ − เป็นคลาสพื้นฐานเฉพาะของการตอบสนองตามชุดของอินพุตที่กำหนด เราใช้คลาสฐานของ unittest เช่น “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
ที่นี่เราขยายคลาสการทดสอบหน่วยในรูปแบบของการสืบทอดเดี่ยว ที่นี่เราใช้วิธีการในตัวเช่น assertEqual() , assertTrue() &assertFalse() .
assertEqual() ใช้เพื่อตรวจสอบ/เปรียบเทียบผลลัพธ์กับผลลัพธ์
assertTrue() ใช้เพื่อตรวจสอบว่าเงื่อนไขที่กำหนดเป็นจริงหรือไม่
assertFalse() ใช้เพื่อตรวจสอบว่าเงื่อนไขที่กำหนดนั้นเป็นเท็จหรือไม่
ผลลัพธ์ของโค้ดด้านบนสามารถมีได้ 3 รูปแบบ:
ตกลง – แสดงว่าการทดสอบทั้งหมดที่สร้างขึ้นได้ดำเนินการสำเร็จแล้ว
FAIL – แสดงว่ากรณีทดสอบล้มเหลวและมีข้อยกเว้น 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 หรือก่อนหน้านั้น