Bazı bean'lerin testlerde yüklenmemesi için kullanılabilir
Örnek
@EnabledScheduling anotasyonlu sınıfların testlerde yüklenmemesini isteyebiliriz. Bu durumda @EnabledScheduling kullanan sınıfları yüklenmesini bir tane property değer ile kontrol etmek gerekir.
Kodumuzu şu hale getirelim. Böylece @EnableScheduling sadece io.reflectoring.scheduling.enabled property değeri true iken etkin olur
Test kodumuzda şöyle yapalım. SchedulingConfiguration sınıfının bean olarak yüklenmediği dolayısıyla da @EnabledScheduling anotasyonunun etkin olmadığı görülebilir.@Configuration@EnableScheduling@ConditionalOnProperty(name = "io.reflectoring.scheduling.enabled",havingValue = "true",matchIfMissing = true)public class SchedulingConfiguration {}
@SpringBootTest(properties = "io.reflectoring.scheduling.enabled=false")class SchedulingTest {@Autowired(required = false)private SchedulingConfiguration schedulingConfiguration;@Testvoid test() {assertThat(schedulingConfiguration).isNull();}}
Örnek
Teste mahsus bir property değeri atamak için kullanılabilir. Şöyle yaparız
@SpringBootTest(properties = "foo=bar")class SpringBootPropertiesTest {@Value("${foo}")String foo;@Testvoid test(){assertThat(foo).isEqualTo("bar");}}
Hiç yorum yok:
Yorum Gönder