Testcontainers, Java uygulamalarını hazırlamak ve test etmek için Docker tabanlı konteynerler oluşturan bir kütüphanedir. Bu sayede, uygulamaların tamamını farklı durumlar ve iş yükleri için kolayca test edebilirsiniz.
Sitesine göz atın: Testcontainers.org
Testcontainers kullanmanın en büyük motivasyonu, test ettiğiniz uygulamanın gerçek ortamını en yakından taklit edebilmenizdir. Bu sayede, uygulamanın nasıl davranacağını gerçek bir ortamda test etmek için gereken tüm bileşenleri sağlayabilirsiniz.
Spring Boot ile oluşturulmuş küçük bir demo projesidir.
- /ping endpointine yapılan isteğe pong cevabını döner
- /pong endpointine yapılan isteğe ping cevabını döner
Makinanızda hali hazırda Docker yüklü ve çalışıyor olmalıdır. Daha sonra
mvn clean install -Pnative spring-boot:build-image
ile bu proje native olarak derlemelisiniz. Bu komut Docker konteyneri oluşturup yerelinize kaydedecektir.
Kontrol etmek için docker run --rm -p 3434:3434 ping-pong-server:0.0.1-SNAPSHOT
ile
konteyneri ayağa kaldırabilirsiniz.
Bu projede PingPongClient isimli bir sınıf bulunmaktadır. Ping-pong sunucusunun ping yada pong endpointlerini çağırarak aldığı cevabı döner. Bu sınıf için Junit5 ile birim testi yazılmış ve bu birim testin testcontainers yardımı ile ping-pong-server projesinin çıktısı olan docker konteyneri ayağa kaldırması sağlanmıştır. Bu birim testi, Testcontainer'ın kullanımını basit bir şekilde örneklemektedir.