JUnit ile Servis Katmanı Testi-2

0 309

Junit ile Controller Testi

JUnit ile Servis Katmanı Testi-1

Bu yazıda bir önceki yazıda bahsettiğimiz konuları daha ileri seviyeye taşımaya çalışacağız.

Bu yazıyla beraber ihtiyacımız olan çoğu konuyu ele almış olacağız.

Dolayısıyla özellikle yeni başlayan arkadaşların önceki yazıları da okumasını tavsiye ediyorum.

 

Servis Katmanı

Servisin içerisinde farklı kurallar eklemeye çalıştım ki biraz test yazmamız farklılaşsın ve gündelik test ihtiyaçlarımızı bu yazıda daha iyi örneklendirebilelim.

Unit Test

İlk testimiz kodda gördüğümüz üzere bir kullanıcı bulamadığında beklediğimiz hatanın fırlatılması.

İkinci testimiz ise bireysel kullanıcının reality(gayrimenkul) yayınlama hakkının dolması durumu.

Üstteki test methodunu incelediğimizde tam yedi tane assertion mevcut. Çünkü test yazdığımızda yapılmasını ve ya yapılmamasını istediğimiz durumlardan emin olmalıyız.

Servis methodundan daha sonra yapılacak bir geliştirme algoritmada açıklar oluşturabilir ve testi çalıştırdığımızda bir sorun görmeyebiliriz fakat canlı ortamdan hatalar almamız kuvvetle muhtemeldir.

Aşağıdaki verify methoduna baktığımızda isteğimiz sadece bir kez istediğimiz methodun herhangi bir integer değer ile çalışması.

Tabii herhangi bir değer değil de kendimiz de o method çalıştığında aldığı değeri verebilirdik fakat ben farklı kullanımları göstermek adına bu şekilde bıraktım.

Bir de aşağıdaki iki kullanımın önemli olduğunu düşünüyorum. Nedeni ise şöyle bahsetmeye çalıştığım gibi eğer userService tekrar kullanılmayacaksa bunu garanti altına almam gerekir ki daha sonra bu method refactor edildiğinde yanlışlıkla userService tekrar kullanılmasın.

Not: Methodun refactor edilmesinden bahsettim. Buradadan da anlaşılacağı üzere bir methodu refactor edecekseniz öncelikle test yazmanız sizin için en güvenli yol olacaktır. Çünkü diğer türlü farklı kodlarla aynı işi yaptığınızı kanıtlayamazsınız.

Üçüncü testimize bakalım.

Dördüncü testimiz ise beklediğimiz başarılı durumların oluştuğunda

Görüldüğü üzere bir method için dört tane test yazdık ve daha fazla yazabiliriz.

Bütün kodlara aşağıdaki linkten ulaşabilirsiniz.

https://gist.github.com/cemdrman/1ee116b3a5eaaf1ab6cd5a46091e3e59

Unit test yazılarına devam ediyor olacağız, yeni yazılarda görüşmek üzere.

Faydalı olması dileğiyle.

Email adresiniz yayınlanmayacaktır.