Giriş
Şu satırı dahil ederiz
Şu satırı dahil ederiz
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
Spring 5 ile geliyor. İki tane şeyin bileşimi. Açıklaması şöyle.
classes @Configuration olarak işaretli sınıflardır,
initializers kendi ApplicationContextInitializer sınıfımızdır.
Bu anotasyonunun SpringBoot karşılığı sanırım @TestConfiguration anotasyonu.
classes Alanı
Yüklenmesi istenilen @Configuration olarak işaretli sınıf belirtilir.
Örnek
Şöyle yaparız
@ExtendWith(SpringExtension.class) from JUnit 5 to run the test with the SpringExtension class and@ContextConfiguration ile yüklenmesi istenilen classes ve initializers belirtilir.
@ContextConfiguration from Spring Testing to load the Spring context
classes @Configuration olarak işaretli sınıflardır,
initializers kendi ApplicationContextInitializer sınıfımızdır.
Bu anotasyonunun SpringBoot karşılığı sanırım @TestConfiguration anotasyonu.
classes Alanı
Yüklenmesi istenilen @Configuration olarak işaretli sınıf belirtilir.
Örnek
Şöyle yaparız
@SpringJUnitConfig(ScheduledIntegrationTest.Config.class)
public class ScheduledIntegrationTest {
@Autowired
MyTask task;
static class Config {
@Bean
public MyTask myTask() {
return new MyTask();
}
}
@Test
public void givenSleepBy100ms_whenWork_thenInvocationCountIsGreaterThanZero()
throws InterruptedException {
...
}
}
ÖrnekElimizde şöyle bir kod olsun
@Configuration@ComponentScanpublic class DemoApplication {public static void main(String[] args) {var context = new AnnotationConfigApplicationContext(DemoApplication.class);...}@Beanpublic Vertx vertx(VerticleFactory verticleFactory) {...}@Beanpublic PgPool pgPool(Vertx vertx) {...}}
DemoApplication bir @Configurtion nesnesi. Bu sınıfı ve yarattığı bean'leri test etmek için şöyle yaparız
@SpringJUnitConfig(classes = DemoApplication.class)@TestInstance(TestInstance.Lifecycle.PER_CLASS)public class TestMainVerticle {@AutowiredApplicationContext context;@Testvoid testGetAll(VertxTestContext testContext) {...}}
Hiç yorum yok:
Yorum Gönder