Birim testinde, @Runwith(SpringRunner.class)
& arasındaki farklar @SpringBootTest
nelerdir?
Her birinin kullanım durumlarını açıklayabilir misiniz?
Birim testinde, @Runwith(SpringRunner.class)
& arasındaki farklar @SpringBootTest
nelerdir?
Her birinin kullanım durumlarını açıklayabilir misiniz?
Yanıtlar:
@RunWith (SpringRunner.class): Sadece bahar çizme gibi özellikler etkinleştirmek için bu ek açıklama gerek @Autowire
, @MockBean
junit test sırasında vb ..
Spring Boot test özellikleri ile JUnit arasında bir köprü sağlamak için kullanılır. JUnit testlerimizde herhangi bir Spring Boot test özelliği kullandığımızda, bu ek açıklama gerekli olacaktır.
@SpringBootTest: Bu ek açıklama uçtan uca entegrasyon testi için tam uygulama bağlamını yüklemek için kullanılır
@SpringBootTest ek açıklaması, tüm kapsayıcıya önyükleme yapmamız gerektiğinde kullanılabilir. Ek açıklama, testlerimizde kullanılacak ApplicationContext'i oluşturarak çalışır.
İşte Baeldung'un her iki senaryosuna da net örnekler içeren makale
Gönderen spring.io :
@RunWith(SpringRunner.class)
JUnit'e Spring'in test desteğini kullanarak çalışmasını söyler.SpringRunner
yeni adıSpringJUnit4ClassRunner
, göze biraz daha kolay.
@SpringBootTest
“Spring Boot'un desteğiyle bootstrap” diyor (örneğinapplication.properties
, bana Spring Boot iyiliğini yükle ve ver)
Bu nedenle, entegrasyon testiniz için Spring Boot'un yüklediği her şeye ihtiyacınız yoksa, @SpringBootTest
@ RunWith, test çalıştırıcılarını kullanmak için JUnit 4'ten eski bir ek açıklamadır. JUnit 5 (Jupiter) kullanıyorsanız, JUnit uzantılarını kullanmak için @ExtendWith kullanmalısınız
"JUnit 4 kullanıyorsanız, testinize @RunWith (SpringRunner.class) eklemeyi de unutmayın, aksi halde ek açıklamalar yok sayılır. JUnit 5 kullanıyorsanız, @ExtendWith ( SpringExtension.class) @SpringBootTest ve diğer @… Test ek açıklamalarına zaten ek açıklama eklenmiştir.