Во время работы JUnits ApplicationContext не загружается, так как ему не удалось найти соответствующий компонент Javax.persistence.EntityManager. Однако приложение, для которого пишется Junit, работает. И приложение, и JUnits используют одинаковую конфигурацию пружины.
Мой класс конфигурации выглядит следующим образом
@Configuration
@EnableTransactionManagement
public class AppConfiguration {
@Autowired private EntityManager entityManager;
@Override @Bean
public CustomRepository<Person> customRepository(){
return new CustomRepository<>(Person.class, entityManager);
}
Как видите, я могу автоматически подключить EntityManager, хотя я не определил бин явно, и приложение работает без проблем.
Теперь в моем JUnit
@RunWith(SpringRunner.class)
@ContextConfiguration(classes=AppConfiguration.class)
@TestPropertySource(locations = "classpath:application.properties")
public class ControllerTest {
@Autowired
private CController controller;
Как видите, приложение и мой Junit используют одинаковую конфигурацию. Однако когда я запускаю JUnit, я вижу
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'javax.persistence.EntityManager' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
Я не мог понять, что в JUnit вызывает проблему, пока приложение все еще работает.
Спасибо