Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

การใช้งาน Testcontainers ใน Spring Boot 3.1

$
0
0

หลังจากที่ Spring Boot 3.1 ปล่อยออกมานั้น
มีเรื่องที่น่าสนใจคือ การทำงานร่วมกับ Testcontainers
โดยมีความสามารถดังนี้

  • แน่นอนว่า ในการทดสอบ สามารถใช้งานได้เลย
  • อีกตัวที่น่าสนใจคือ สามารถ Run ใน test mode ได้ ช่วยให้นักพัฒนาง่ายขึ้น

มาดูกันว่าเป็นอย่างไร ?

ก่อนใช้งานบนเครื่องต้องมี

  • Docker
  • JDK 17

จากนั้นทำการสร้าง project ดังรูป

เรื่องแรกใช้ Testcontainers ใน Test case

โดยในการทดสอบนั้น สามารถทำการจำลองหรือสร้าง MongoDB
ผ่าน Testcontainers ได้เลย
จากนั้นก็ทำการ start test case กันได้เลย
ซึ่งทำงานร่วมกับ SpringBootTest ได้ปกติ
ตัวอย่าง code ดังรูป

[gist id="c203fe120a3672e80c99703401dbad59" file="TestCase.java"]

ในการทดสอบจะทำการสร้าง container ใน Docker ขึ้นมา
เมื่อทดสอบเสร็จแล้ว จะทำการลบ container ให้อัตโนมัติ

[gist id="c203fe120a3672e80c99703401dbad59" file="1.txt"]

เรื่องที่สอง ใช้ Testcontainers ในการ run test mode

ในการพัฒนาปกติ จะทำการ start project ผ่าน IDE หรือ command line ก็ได้
เช่น

[code] // Apache Maven $mvnw spring-boot:run // Gradle $gradlew bootRun [code]

ส่วนใน 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
ยกตัวอย่างเช่น

[gist id="c203fe120a3672e80c99703401dbad59" file="TestApplication.java"]

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


Viewing all articles
Browse latest Browse all 1997

Trending Articles