Blog
Python
อธิบายการเขียน Unit Test ฉบับเข้าใจง่าย ๆ ด้วย Python

อธิบายการเขียน Unit Test ฉบับเข้าใจง่าย ๆ ด้วย Python

python_ep_1

Unittest คือ ?

ในการเขียนโปรแกรมภาษาคอมพิวเตอร์เพื่อทดสอบเป็น วิธี ตรวจสอบซอร์สโค้ด และชุดคำสั่งของภาษาโปรแกรมคอมพิวเตอร์ตั้งแต่หนึ่งชุด ขึ้นไปจนประกอบด้วย ขั้นตอนการใช้งาน และขั้นตอนการปฏิบัติงาน จนจบกระบวนการเพื่อตรวจสอบว่าการทำงานตรงเงื่อนไขและต้องการให้เป็น ตามที่ผู้สร้างซอฟต์แวร์คาดไว้

Unittest Framework คือ ?

Unittest เป็นเฟรมเวิร์กการทดสอบหน่วยสำหรับ Python ที่ช่วยให้นักพัฒนาสามารถเขียนกรณีทดสอบสำหรับโค้ดของตนได้ มีชุดเครื่องมือสำหรับทดสอบโค้ดและตรวจสอบว่าทำงานตามที่คาดไว้ Unittest มักใช้เพื่อทดสอบโค้ดที่เขียนด้วย Python แต่สามารถใช้ทดสอบภาษาใดก็ได้ Unittest อนุญาตให้เขียนแบบทดสอบอย่างเรียบง่ายตรงไปตรงมา และตั้งค่าและเรียกใช้การทดสอบได้ง่าย นอกจากนี้ Unittest ยังมีเครื่องมือแก้ไขจุดบกพร่องและฟีเจอร์การรายงานที่เป็นประโยชน์ ซึ่งเป็นตัวเลือกที่ยอดเยี่ยมสำหรับนักพัฒนาที่ต้องการให้แน่ใจว่าโค้ดทำงานได้อย่างถูกต้อง

ขั้นตอนการเตรียมตัว

อย่างแรกสิ่งที่จำเป็นจะต้องเตรียมความพร้อมและต้องมีได้แก่

  1. Python เวอร์ชั่นใดก็ได้ แนะนำ (3.8+)
  2. Vscode (ส่วนตัวหากเพื่อน ๆ คนไหนมีโปรแกรมที่ชื่นชอบ IDE ก็เลือกตัวนั้นได้เลย)
  3. สร้างโฟลเดอร์ Project ขึ้นมาและสร้างไฟล์ test_demo.py
mkdir <project_name> # สร้างโฟลเดอร์
cd <project_name> # เข้าโฟลเดอร์
touch test_demo.py # สร้างไฟล์

ขั้นตอนการใช้งาน

อย่างแรกจะต้องทำการเรียกใช้งาน library เข้ามาก่อน

test_demo.py
import unittest

เมื่อเราทำการเรียกมาใช้งานแล้ว หลักการใช้งาน unittest จะเป็นรูปแบบตายตัว โดยจะต้องทำการสร้างในรูปแบบ Class เพื่อใช้งาน และทำการสร้างฟังก์ชั่นขึ้นมา

test_demo.py
import unittest
 
class TestDemo(unittest.TestCase):
 
    def test_upper(self):
            self.assertEqual('demo'.upper(), 'DEMO')
 

เสร็จแล้วให้เราทำการเพิ่ม main ฟังก์ชั่นเพื่อให้ Framework ทำการเรียกใช้งาน โดยอ่านจากไฟล์ที่มีชื่อว่า test_<name>.py

test_demo.py
import unittest
 
class TestDemo(unittest.TestCase):
 
    def test_upper(self):
            self.assertEqual('demo'.upper(), 'DEMO')
 
if __name__ == '__main__':
    unittest.main()

ทำการ RUN เพื่อใช้งานดูว่าการทดสอบเป็นอย่างไรบ้าง

python3 -m unittest #หรือ
python -m unittest

ตัวอย่างผลลัพธ์ที่ทำงานเสร็จสิ้น

.
----------------------------------------------------------------------
Ran 1 test in 0.000s

เพียงเท่านี้ก็เป็นอันเสร็จเรียบร้อยแล้ว

หากท่านชอบและรู้สึกว่ามีประโยชน์ รบกวนแชร์และแบ่งปันให้ผู้ที่สนใจและควรจะได้รับการเข้าถึงบทความนี้ แล้วพบกันใหม่ครับ