เขียนเทสภาษาโก

เริ่มเขียนเทสแบบง่ายที่สุดกันก่อน เพื่อสร้างความมั่นใจกันดีกว่า โดยเริ่มจากสร้างโฟล์เดอร์ src/first ใน gopath แล้วสร้างไฟล์ชื่อ hi_test.go แล้วพิมพ์แบบนี้ลงไป

package first
import (
  "testing"
)

func TestHi(t *testing.T) {
  text := hi()
  if text != "hi" {
    t.Errorf("It should be hi but was %s",text)
  }
}

จากนั้นลองไปพิมพ์ที่ command ว่า go test ให้มันด่าเล่นสักทีหนึ่งก่อน
ที่นี้ เราลองมาสร้างไฟล์ที่เทสต้องการ ชื่อ hi.go แล้วพิมพ์ตามนี้เลย

package first
func hi() string {
  return "hi"
}

ทั้งสองไฟล์นี้ชื่อแพ็คเกจเดียวกันคือ <strong>first</strong> เพื่อให้เทสสามารถเรียกใช้ฟังก์ชันใน hi.go ได้โดยตรง ที่สำคัญฟังก์ชัน hi ของเราตั้งชื่อขึ้นต้นด้วยตัวอักษรเล็ก ซึ่งทำให้เป็นการประกาศแบบ private ไม่สามารถนำเข้าจากแพ็คเกจอื่นแล้วเรียกใช้ได้ นี่คือเหตุผลที่ทำให้ทั้งสองไฟล์มีชื่อแพ็คเกจเดียวกันครับ
ทีนี้ลองไปเทสกันใหม่ด้วยคำสั่งเดิมคือ go test คาดว่าน่าจะได้ผลลัพธ์แบบเดียวกันตามนี้ครับ

C:\gopath\src\spike\first>go test
PASS
ok _/C_/gopath/src/spike/first 0.043s

แบบนี้แสดงว่าเทสผ่านแล้ว สบายใจครับ น่าจะช่วยให้คนชอบเทสมีความสุขได้แล้ว
ไว้มีโอกาสจะมาเล่าเรื่องยากๆบ้างนะครับ