12/04/2026 18:15น.

EP.10 Go กับ Unit Testing - เขียนโค้ดให้มั่นใจ ด้วยการทดสอบ!
#Superdev School
#การพัฒนาแอปพลิเคชัน
#Table-Driven Tests
#Testing
#TDD
#Unit Testing
#Go
Go กับ Unit Testing - เขียนโค้ดให้มั่นใจ ด้วยการทดสอบ!
การทดสอบเป็นส่วนสำคัญของการพัฒนาโปรแกรมที่มีคุณภาพ
Unit Testing คืออะไร?
Unit Test คือการทดสอบส่วนย่อยๆ ของโปรแกรม เพื่อให้มั่นใจว่าทำงานถูกต้องตามที่คาดหวัง โดยใช้แพ็กเกจ testing ใน Go
ตัวอย่าง Unit Test
package main
import "testing"
func add(a, b int) int {
return a + b
}
func TestAdd(t *testing.T) {
result := add(2, 3)
if result != 5 {
t.Errorf("Expected 5, got %d", result)
}
}
การรัน Unit Tests
ใช้คำสั่งนี้เพื่อรันการทดสอบใน Go:
go test
การทดสอบหลายกรณีด้วย Table-Driven Tests
Go มีแนวทางการเขียนทดสอบแบบ Table-Driven เพื่อทดสอบหลายๆ กรณีในครั้งเดียว
func TestAddCases(t *testing.T) {
cases := []struct {
a, b, expected int
}{
{1, 2, 3},
{2, 3, 5},
{0, 0, 0},
}
for _, c := range cases {
result := add(c.a, c.b)
if result != c.expected {
t.Errorf("Expected %d, got %d", c.expected, result)
}
}
}
Test-Driven Development (TDD) คืออะไร?
TDD คือกระบวนการเขียนเทสท์ก่อน แล้วจึงเขียนโค้ดให้ผ่านเทสท์นั้น ช่วยให้มั่นใจว่าโค้ดที่พัฒนามีคุณภาพและทำงานได้ถูกต้องตั้งแต่แรก
วงจรของ TDD:
- เขียน Unit Test ที่ล้มเหลว (Red)
- เขียนโค้ดให้ผ่านการทดสอบ (Green)
- ปรับปรุงโค้ด (Refactor)
การ Mock สำหรับทดสอบฟังก์ชันที่เรียกใช้ภายนอก
การ Mock เป็นเทคนิคที่ช่วยจำลองพฤติกรรมของการเรียกใช้ฟังก์ชันภายนอก ทำให้ทดสอบได้อย่างแม่นยำ