JUnit5 ile Java Örneği

Unit test genel olarak; bir metot (ya da fonksiyonun) kendi içerisindeki akışın doğru çalışıp çalışmadığı bilgisini developer’ a gösteren bir testtir. Bu testi son kullanıcı testleri ile ayrı tutmamız lazım. Aslında ifade etmeye çalıştığım şey: bu test developer testidir. Kod doğru çalışıyor mu diye developer’ in geliştirme esnasında oluşturduğu ve kodunu kontrol ettiği testtir. Monolotik olarak metot bazında yapılır.

Unit testler success olduğunda yapılan işlem son kullanıcı açısından sorunsuz anlama gelmemeli. Belki domainsel dediğimiz analiz sorunları vb. sorunlar oluşabilir.

Özetle Unit testin amacı teknik olarak metot(ya da fonksiyonun) herhangi bir exception olusturmadan hatasız calısıp, beklenen girdilere karşın beklenen sonucu verdi mi? sorunsalı için yazılır.

Java da en çok kullanılan JUnit kütüphanesi kendi içerisinde JUnit4 ve JUnit5 olarak aktif kullanılır durumda. Ben bu yazımda JUnit5 kullanacağım. Başka bir yazımda da java da çok popüler olan başka bir unit test kütüphanesi olan mockito’ dan bahsedeceğim 🙂

O zaman başlıyoruz.

JUnit5 Annotationlar (Anotasyonlar)

@Disable: Test sınıfını ya da metodunu devre dışı bırakmak için kullanılır. (JUnit4’te @Ignore)

@AfterAll: Tüm test metodları çalıştırıldıktan sonra çalıştırılacak olan metodu belirtir.

@BeforeAll: Tüm test metodlarından önce çalıştırılacak olan metodu belirtir.

@AfterEach: Her test metodundan sonra çalıştırılacak olan metodu belirtir. (JUnit4’te @After)

@BeforeEach: Her test metodundan önce çalıştırılacak olan metodu belirtir. (JUnit4’te @Before)

@ExtendWith: Custom extension’ları eklemek için kullanılır. (Mesela spring boot extension’ u için: @ExtendWith(SpringExtension.class))

@Tag: Testleri filtrelemek için Tag ekler.

@DisplayName: Sınıf ya da metodların isimlerinin test sonuçlarında nasıl görüneceğini belirler.

@Nested: Bu annotationu alan sınıfın bir nested sınıf yani non-static sınıf olduğunu belirtir.

@TestFactory: Metodun dinamik test olduğunu belirtir.

Yazının devamı için makaleyi indirin veya açın.

Örnek projeyi indirin.

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir