หลังจากที่ 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 ก็ได้
เช่น


// Apache Maven
$mvnw spring-boot:run

// Gradle
$gradlew bootRun

ส่วนใน Spring Boot 3.1 และ Testcontainers ได้เพิ่ม task ใหม่เข้ามาคือ


// Apache Maven
$mvnw spring-boot:test-run

// Gradle
$gradlew bootTestRun

แต่ใน Test นั้นจะต้องเพิ่ม class TestApplication เข้ามา
เพื่อทำการ custom Main class ของการทดสอบนั่นเอง
รวมทั้ง configuration ของ Testcontainers สำหรับ MongoDB
ยกตัวอย่างเช่น

เพียงเท่านี้ก็สามารถใช้งาน Testcontainers ใน Spring Boot 3.1 กันแบบง่าย ๆ ได้แล้ว