ในระบบงานที่พัฒนาด้วยภาษา JavaScript ไม่ว่าจะผ่าน web browser หรือ Node (backend)
ต่างมีการเชื่อมต่อหรือดึงข้อมูลผ่าน HTTP service
ซึ่งหนึ่งใน library ที่ใช้งานบ่อย ๆ คือ fetch API ที่ build-in มาให้
โดยในการทดสอบระบบที่ทำงานกับ HTTP Service
ก็มี library สำหรับการจำลองมากมาย หนึ่งในนั้นคือ Fetch Mock
มาลองใช้งานกันดู
จากที่ share ไปนั้น ผมมักจะเรียกการทดสอบที่เขียน code
ว่าเป็น internal testing
มาเขียน test กัน !!
เริ่มด้วยเขียน product code เพื่อดึงข้อมูล API ผ่าน fetch ดังนี้
[gist id="ddec44c64db6687912559b8db6e38558" file="user.js"]จากนั้นทำการเขียน test case เพื่อจำลองการทำงานของ fetch API
ใน case ต่าง ๆ ดังนี้
- Success case
- Failure case เช่น 404 user not found
- Failure case เช่น Network error
- Failure case เช่น Network delay
มาดู success case กัน
[gist id="ddec44c64db6687912559b8db6e38558" file="user.test.js"]จากนั้นทำการ run ด้วย Node test และ coverage นิดหน่อย
[gist id="ddec44c64db6687912559b8db6e38558" file="1.txt"]ลองใช้งานกันดูครับ
น่าจะช่วยให้การเขียน code และ test สนุกขึ้น