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

Unit Testing ใน Python ด้วยโมดูล Unittest

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

แนวคิดหลัก:

  • TestCase - คลาสฐานสำหรับชุดอินพุต ใช้ unittest.TestCase
  • TestSuite - รวมหลาย Test Case รันพร้อมกัน
  • TestRunner - รันและแสดงผลลัพธ์
  • TestFixture - ฐานสำหรับ Test Case ในสภาพแวดล้อมที่เกี่ยวข้อง

ตัวอย่างพื้นฐาน

import unittest

class TestStringMethods(unittest.TestCase):
    def test_upper(self):
        self.assertEqual('TUTOR'.lower(), 'tutor')
    def test_islower(self):
        self.assertTrue('tutor'.islower())
        self.assertFalse('Tutor'.islower())

if __name__ == '__main__':
    unittest.main()

ผลลัพธ์

...
-------------------------------
Ran 2 tests in 0.000s
OK

Unit Testing ใน Python ด้วยโมดูล Unittest

ใช้เมธอด built-in:

  • assertEqual() - เปรียบเทียบผลลัพธ์กับค่าที่คาดหวัง
  • assertTrue() - ตรวจสอบเงื่อนไขเป็น True
  • assertFalse() - ตรวจสอบเงื่อนไขเป็น False

ผลลัพธ์ 3 รูปแบบ:

  • OK - ผ่านทั้งหมด
  • FAIL - ล้มเหลว มี AssertionError
  • ERROR - มีข้อยกเว้น/ข้อผิดพลาด

ข้ามการทดสอบด้วย @unittest.skip(<reason>)

ตัวอย่าง Skip

import unittest

class 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())

if __name__ == '__main__':
    unittest.main()

ผลลัพธ์

...
------------------------------------------
Ran 2 tests in 0.000s
OK (skipped=2)

สรุป

เรียนรู้ Unit Testing ใน Python ด้วย Unittest module ใน Python 3.x