หลังจากที่ Spring Boot 3.1 ปล่อยออกมานั้น
มีเรื่องที่น่าสนใจคือ การทำงานร่วมกับ Testcontainers
โดยมีความสามารถดังนี้
- แน่นอนว่า ในการทดสอบ สามารถใช้งานได้เลย
- อีกตัวที่น่าสนใจคือ สามารถ Run ใน test mode ได้ ช่วยให้นักพัฒนาง่ายขึ้น
มาดูกันว่าเป็นอย่างไร ?
ก่อนใช้งานบนเครื่องต้องมี
- Docker
- JDK 17
จากนั้นทำการสร้าง project ดังรูป
เรื่องแรกใช้ Testcontainers ใน Test case
โดยในการทดสอบนั้น สามารถทำการจำลองหรือสร้าง MongoDB
ผ่าน Testcontainers ได้เลย
จากนั้นก็ทำการ start test case กันได้เลย
ซึ่งทำงานร่วมกับ SpringBootTest ได้ปกติ
ตัวอย่าง code ดังรูป
ในการทดสอบจะทำการสร้าง container ใน Docker ขึ้นมา
เมื่อทดสอบเสร็จแล้ว จะทำการลบ container ให้อัตโนมัติ
เรื่องที่สอง ใช้ Testcontainers ในการ run test mode
ในการพัฒนาปกติ จะทำการ start project ผ่าน IDE หรือ command line ก็ได้
เช่น
ส่วนใน Spring Boot 3.1 และ Testcontainers ได้เพิ่ม task ใหม่เข้ามาคือ
[code] // Apache Maven $mvnw spring-boot:test-run // Gradle $gradlew bootTestRun [code]แต่ใน Test นั้นจะต้องเพิ่ม class TestApplication เข้ามา
เพื่อทำการ custom Main class ของการทดสอบนั่นเอง
รวมทั้ง configuration ของ Testcontainers สำหรับ MongoDB
ยกตัวอย่างเช่น
เพียงเท่านี้ก็สามารถใช้งาน Testcontainers ใน Spring Boot 3.1 กันแบบง่าย ๆ ได้แล้ว