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