Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

Golang :: ตัวอย่างของ code ที่ทดสอบได้ง่ายขึ้น

$
0
0

มีคำถามเกี่ยวกับจากการแบ่งปันเรื่อง 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 ที่ทดสอบได้ง่ายขึ้นแล้วครับ

Viewing all articles
Browse latest Browse all 1997

Trending Articles