มีคำถามเกี่ยวกับจากการแบ่งปันเรื่อง TDD with Golang ที่เชียงใหม่
ดังนี้
จึงนำมาเขียนอธิบายไว้ใน blog นิดหน่อย
เพื่อทำให้เข้าใจมากยิ่งขึ้น
มาเริ่มกันเลย
สิ่งที่ต้องการคือ ทำการสร้าง function สำหรับดึงข้อมูลจาก API มาเพื่อนำมาทำงานต่อ
เป้าหมายที่ต้องการคือ ต้องสามารถทดสอบได้ด้วย
โดยไม่จำเป็นต้องเรียกใช้ API ผ่านระบบ network
เริ่มด้วย code ที่เขียนมานั้น ต้องง่ายต่อการทดสอบด้วย
นั่นคือ นำ interface มาใช้งานนั่นเอง
ดังตัวอย่าง
[gist id="0c41c372efa84d2562b3f07a43d51c80" file="api.go"]
คำอธิบาย
ทำการสร้าง interface ชื่อว่า Counter
ซึ่งมี method ชื่อว่า count() สำหรับดึงข้อมูล
สิ่งที่สำคัญคือ การทำงานอยู่ใน method myProcess()
ซึ่งมี argument 1 ตัวคือ interface Counter นั่นเอง
ทำให้เราสามารถส่งอะไรก็ได้ ที่มีหน้าตาเหมือนกับ interface Counter
โดยทำให้ code ทดสอบได้ง่ายดังนี้
[gist id="0c41c372efa84d2562b3f07a43d51c80" file="api_test.go"]
และยังสามารถทดสอบใน case error ได้อีกด้วย ดังนี้
[gist id="0c41c372efa84d2562b3f07a43d51c80" file="api_test02.go"]
เพียงเท่านี้ก็ทำให้เราสามารถสร้าง code ที่ทดสอบได้ง่ายขึ้นแล้วครับ
↧