หลังจากที่แบ่งปันเรื่องการทดสอบระบบงานมานั้น
หนึ่งในแนวทางการทดสอบคือ การจำลอง external dependency ของระบบ
ไม่ว่าจะเป็น database, messaging และ REST API เป็นต้น
เพื่อควบคุมการทดสอบให้สามารถทดสอบซ้ำได้อย่างต่อเนื่อง
ดังนั้นมาดูแนวทางการทดสอบกันหน่อยว่าทำอย่างไร ?

ในแต่ละภาษาโปรแกรม และ framework มีแนวทางคล้าย ๆ กัน

ยกตัวอย่างของการจำลอง REST API เช่น

  • NodeJS ใช้งาน Nock
  • Go ใช้งาน Gock
  • Spring boot ใช้งาน Spring cloud contract และ Wiremock
  • Playwright มี Mock API
  • ถ้าใครใช้พวก container-based ก็สามารถใช้ Test containers ได้เลย

โดยแนวทางเหล่านี้ เราสามารถเขียน code ไว้ใน test case ได้เลย
นั่นคือ เมื่อ run test case ต่าง ๆ แล้ว
จะทำการสร้าง Mock server ขึ้นมาให้แบบอัตโนมัติ
เมื่อทำการทดสอบเสร็จแล้ว จะทำการลบ Mock server ให้เองทันที

มาดูตัวอย่างของการใช้งาน WireMock ใน Spring Boot testing กัน

  • ทำการจำลอง REST API 3 case คือ success, failure (404) และ ให้ response time 5 วินาที

ลองนำไปใช้งานกันดู
เพื่อช่วยให้การทดสอบทำงานได้รวดเร็ว ทำซ้ำได้ง่าย
และช่วยให้นักพัฒนามั่นใจต่อ code ที่สร้างขึ้นมาอีกด้วย
ก่อนที่จะทำ integration test ต่อไป