SpringRunner ve SpringBootTest karşılaştırması


11

Birim testinde, @Runwith(SpringRunner.class)& arasındaki farklar @SpringBootTestnelerdir?

Her birinin kullanım durumlarını açıklayabilir misiniz?


1
Çeşitli belgelerden herhangi birini okudunuz mu? Hala belirsiz olan nedir?
jonrsharpe

Açık fark, Spring test vs Spring boot testidir, ancak çok geniş bir soru
user7294900

Ne zaman SpringRunner ek olarak @SpringBootTest kullanmalıyım anlıyorum.
19:46

Yanıtlar:


10

@RunWith (SpringRunner.class): Sadece bahar çizme gibi özellikler etkinleştirmek için bu ek açıklama gerek @Autowire, @MockBeanjunit 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


1

Gönderen spring.io :

@RunWith(SpringRunner.class)JUnit'e Spring'in test desteğini kullanarak çalışmasını söyler. SpringRunneryeni adı SpringJUnit4ClassRunner, göze biraz daha kolay.

@SpringBootTest“Spring Boot'un desteğiyle bootstrap” diyor (örneğin application.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


0

@ 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

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

"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.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.