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

การทดสอบซอฟต์แวร์อัตโนมัติด้วย Python (unittest)

ในบทช่วยสอนนี้ เราจะเรียนรู้การทดสอบอัตโนมัติ (Automated Testing) ใน Python หลังเขียนโค้ด ต้องทดสอบด้วยอินพุตต่างๆ ว่าทำงานถูกต้องหรือไม่ การทดสอบด้วยมือ (Manual) ยุ่งยาก เราจะใช้โมดูล unittest

พื้นฐาน unittest

  • สร้างคลาสสืบทอดจาก unittest.TestCase
  • เมธอดทดสอบต้องขึ้นต้นด้วย test (เช่น test_something)
  • ใช้ assertion methods เช่น assertTrue, assertEqual, assertFalse

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

import unittest

class SampleTest(unittest.TestCase):
    def test(self):
        self.assertTrue(True)

unittest.main()

ผลลัพธ์

Ran 1 test in 0.001s
OK

ทดสอบ String Methods

ตัวอย่าง

import unittest

class TestingStringMethods(unittest.TestCase):
    def test_string_equality(self):
        self.assertEqual('ttp' * 5, 'ttpttpttpttpttp')
    
    def test_string_case(self):
        self.assertEqual('tutorialspoint'.upper(), 'TUTORIALSPOINT')
    
    def test_is_string_upper(self):
        self.assertTrue('TUTORIALSPOINT'.isupper())
        self.assertFalse('TUTORIALSpoint'.isupper())

unittest.main()

ผลลัพธ์

Ran 3 tests in 0.001s
OK

Assertion Methods ที่ใช้บ่อย

เมธอดคำอธิบาย
assertEqual(a, b)a == b
assertNotEqual(a, b)a != b
assertTrue(x)x is True
assertFalse(x)x is False
assertIsNone(x)x is None
assertIn(a, b)a in b
assertRaises(Error, func)func โยน Error

สรุป

unittest ช่วยประหยัดเวลาทดสอบมาก เขียน test cases ครั้งเดียว รันซ้ำได้ตลอดเวลา หากมีข้อสงสัย สามารถถามได้ในส่วนความคิดเห็น