Моя проблема: если мой тест ссылается на объявление @Bean
в классе, указанном в @SpringBootTest
, работает autowire.Если он ссылается на класс, автоматически @ComponentScan
определенный классом, перечисленным в @SpringBootTest
, autowire завершается ошибкой.Вне тестирования мое приложение запускается без проблем с автопроводом или проверкой компонентов, и я могу подтвердить, что служба, которую я хочу загрузить в моем тесте, работает нормально из-за отсутствия тестирования.Я чертовски разочарован.Я сломан или функционал Junit5 в Spring Boot 2?
Мой тест:
@ExtendWith(SpringExtension.class)
@SpringBootTest (classes=MyConfig.class)
public class MyTest {
// fails to autowire
@Autowired
private MyService _mySvc ;
// succeeds!
@Autowired @Qualifier ( "wtf" )
private String _wtf ;
MyConfig:
@EnableWebMvc
@SpringBootApplication ( scanBasePackages = "my.packaging" )
@Configuration
public class MyConfig {
@Bean
public String wtf ( ) { return "W T F???" ; }
// No @Bean for MyService because component scan is nicer in the non-test world