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

Unittest คือ ?
ในการเขียนโปรแกรมภาษาคอมพิวเตอร์เพื่อทดสอบเป็น วิธี ตรวจสอบซอร์สโค้ด และชุดคำสั่งของภาษาโปรแกรมคอมพิวเตอร์ตั้งแต่หนึ่งชุด ขึ้นไปจนประกอบด้วย ขั้นตอนการใช้งาน และขั้นตอนการปฏิบัติงาน จนจบกระบวนการเพื่อตรวจสอบว่าการทำงานตรงเงื่อนไขและต้องการให้เป็น ตามที่ผู้สร้างซอฟต์แวร์คาดไว้
Unittest Framework คือ ?
Unittest เป็นเฟรมเวิร์กการทดสอบหน่วยสำหรับ Python ที่ช่วยให้นักพัฒนาสามารถเขียนกรณีทดสอบสำหรับโค้ดของตนได้ มีชุดเครื่องมือสำหรับทดสอบโค้ดและตรวจสอบว่าทำงานตามที่คาดไว้ Unittest มักใช้เพื่อทดสอบโค้ดที่เขียนด้วย Python แต่สามารถใช้ทดสอบภาษาใดก็ได้ Unittest อนุญาตให้เขียนแบบทดสอบอย่างเรียบง่ายตรงไปตรงมา และตั้งค่าและเรียกใช้การทดสอบได้ง่าย นอกจากนี้ Unittest ยังมีเครื่องมือแก้ไขจุดบกพร่องและฟีเจอร์การรายงานที่เป็นประโยชน์ ซึ่งเป็นตัวเลือกที่ยอดเยี่ยมสำหรับนักพัฒนาที่ต้องการให้แน่ใจว่าโค้ดทำงานได้อย่างถูกต้อง
ขั้นตอนการเตรียมตัว
อย่างแรกสิ่งที่จำเป็นจะต้องเตรียมความพร้อมและต้องมีได้แก่
- Python เวอร์ชั่นใดก็ได้ แนะนำ (3.8+)
- Vscode (ส่วนตัวหากเพื่อน ๆ คนไหนมีโปรแกรมที่ชื่นชอบ IDE ก็เลือกตัวนั้นได้เลย)
- สร้างโฟลเดอร์ Project ขึ้นมาและสร้างไฟล์ test_demo.py
mkdir <project_name> # สร้างโฟลเดอร์
cd <project_name> # เข้าโฟลเดอร์
touch test_demo.py # สร้างไฟล์
ขั้นตอนการใช้งาน
อย่างแรกจะต้องทำการเรียกใช้งาน library เข้ามาก่อน
import unittest
เมื่อเราทำการเรียกมาใช้งานแล้ว หลักการใช้งาน unittest จะเป็นรูปแบบตายตัว โดยจะต้องทำการสร้างในรูปแบบ Class เพื่อใช้งาน และทำการสร้างฟังก์ชั่นขึ้นมา
import unittest
class TestDemo(unittest.TestCase):
def test_upper(self):
self.assertEqual('demo'.upper(), 'DEMO')
เสร็จแล้วให้เราทำการเพิ่ม main
ฟังก์ชั่นเพื่อให้ Framework ทำการเรียกใช้งาน โดยอ่านจากไฟล์ที่มีชื่อว่า test_<name>
.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
เพียงเท่านี้ก็เป็นอันเสร็จเรียบร้อยแล้ว
หากท่านชอบและรู้สึกว่ามีประโยชน์ รบกวนแชร์และแบ่งปันให้ผู้ที่สนใจและควรจะได้รับการเข้าถึงบทความนี้ แล้วพบกันใหม่ครับ