จากที่ได้แนะนำเรื่องการพัฒนาและทดสอบระบบงานพวก RESTFul API ไปนั้น
มีคำถามที่น่าสนใจเกี่ยวกับการทดสอบว่า เราจะทำการทดสอบอย่างไรดี ?
จะทดสอบใน level ไหนบ้างเช่น integration, unit และ component เป็นต้น
จึงสรุปคำแนะนำออกมาเป็นข้อ ๆ แบบสั้น ๆ ดังนี้

ปล. คำจำกัดความของการทดสอบใน level ต่าง ๆ นั้น
อ้างอิงมาจาก Testing Strategies in a Microservice Architecture

เริ่มจาก Integration test ก่อนเลย

เนื่องจากในทุก ๆ วันนั้น เราต้องทำการติดต่อสื่อสารไปยังระบบอื่น ๆ เสมอ
ดังนั้นเพื่อช่วยให้เรามีความเชื่อมั่นในสิ่งที่ทำ
จำเป็นต้องทดสอบในระดับ integration บ่อย ๆ
ส่วน Unit test ก็ยังมีความจำเป็นของการทำงานแต่ละส่วนภายในนั่นเอง

URL ของ API ต้องง่ายต่อการเปลี่ยน

นั่นหมายความว่าทางผู้เรียกใช้งาน API นั้น
ต้องสามารถเปลี่ยน URL ได้ง่าย
ไม่ได้ทำการ hard code เอาไว้

ผลที่ตามมาคือ คนเรียกใช้งาน API สามารถเปลี่ยนไปใช้ server อื่น ๆ ได้ง่าย
เช่น local server เป็นต้น
โดยที่ไม่ต้องมาแก้ไข code อีกต่อไป

ถ้าเป็นการเรียกจากระบบงานของเรา
แล้วทำการเปลี่ยน URL มาเป็น local server
การทดสอบนั้นเราจะเรียกว่า component testing นั่นเอง

ต่อมาถ้าเราทดสอบแบบ integration test ได้แล้ว น่าจะต้องบันทึกการเรียกใช้งานได้

เพื่อความง่ายต่อการทดสอบแล้วนั้น
เราต้องพิจารณาการบันทึก request และ response
ของ API ที่เราเรียกใช้งานไว้ด้วยเสมอ
เพื่อนำมาใช้ประโยชน์ของการทดสอบ
ทั้งดูการเปลี่ยนแปลง
ทั้งนำมาจำลองใน local server
ทั้งนำมาใช้ในการทดสอบระดับอื่น ๆ

เน้นเรื่องของ Convention over configuration

นั่นคือเน้นไปที่ข้อตกลงในการทำงานมากกว่าการ configuration
เพราะว่าการ configuration มันใช้เวลาที่เยอะ รวมทั้งเกิดข้อผิดพลาดได้สูง

สุดท้าย สำหรับส่วนการทำงานที่มีความซับซ้อน

แนะนำให้เขียน Unit test เสมอ 
อย่าหลีกเลี่ยงมัน ด้วยการบอกว่าเรามี integration test แล้ว

มาเขียนชุดการทดสอบกัน