JUnit ile Spring Data Repository Testi

0 737

Öncelikle okumadıysanız eğer önceki yazıları da okumanızda fayda var.

Junit ile Controller Testi

 

JUnit ile Servis Katmanı Testi-1

JUnit ile Servis Katmanı Testi-2

JUnit ile Servis Katmanı Testi-3

 

Bu yazıda repository katmanlarımıza nasıl test yazabilirizi incelemeye çalışacağız.

Testlerimiz için H2 veritabanını kullanıyor olacağız. Tabii ki istersek kendi test ortamlarımızı da bağlayabiliriz fakat bu ortamları gereksiz kirletmiş oluruz.

Fakat burada bazı problemlerle karşılaşıyor olabiliriz. Eğer Veritabanına özel fonksiyonlar kullanıyorsanız H2 bunları anlayamacaktır. Yoksa SQL standartına uygun

olduğu sürece sorun yaşamazsınız fakat test ortamınızı da buna göre ayarlarsanız daha sağlıklı bir yaklaşım olacaktır.

Örnek bir repository kodu üzerinden inceleyelim.

Repository

 

Test

@DataJpaTest bize repository katmanlarımızın testini yazmamız için olanak sağlıyor. ApplicationContext’i ayağa kaldırmaz.

 

@BeforeEach ile her test methodu çalışmadan bir veri seti oluşturduk ve test senaryolarımızı işletmeye çalışıyoruz.

Diğer senaryolarımızı da ekleyelim.

 

Disable – Enable SQL Query

Default olarak show-sql=true değerine sahip fakat isterseniz aşağıdaki gibi bunu kapatabilirsiniz.

 

Native Query

Native SQL sorguları için aynı yöntemle test yazabilirsiniz. Fakat tekrar hatırlamak gerekirse, veritabanı özelinde kullanılan fonksiyonlarını H2 üzerinde test etmeye çalışırsanız hata alacaktır.

 

Kaynak

https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.testing

 

Faydalı olması dileğiyle.

Email adresiniz yayınlanmayacaktır.