การดู : 0

12/04/2026 18:15น.

EP.10 Go กับ Unit Testing - เขียนโค้ดให้มั่นใจ ด้วยการทดสอบ!

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 เป็นเทคนิคที่ช่วยจำลองพฤติกรรมของการเรียกใช้ฟังก์ชันภายนอก ทำให้ทดสอบได้อย่างแม่นยำ