Пытаюсь написать контрольные примеры JUNIT с H2 DB для моих микросервисов. У меня есть несколько. sql файлов для начальной настройки БД, например, для создания схемы, таблиц и т. Д. c. Здесь возникает одна проблема: файлы. sql вызывают несколько раз, по одному разу на каждый тестовый файл JUNIT. Есть ли способ справиться с этим сценарием? Мой файл установки БД выглядит так -
@Configuration
@ComponentScan(basePackages={"com.sample.repository"})
public class SampleDBConfig {
JdbcTemplate jdbcTemplate = null;
DataSource dataSource = null;
@Bean
public JdbcTemplate jdbcTemplate()
{
if(jdbcTemplate == null){
LOGGER.info("JdbcTemplate is null, so calling to create ");
jdbcTemplate = new JdbcTemplate(getDataSource());
}else{
LOGGER.info("JdbcTemplate is already set");
}
return jdbcTemplate;
}
@Bean
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
return new PropertySourcesPlaceholderConfigurer();
}
@Bean
DataSource getDataSource() {
EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder();
if(dataSource == null){
dataSource = builder
.setType(EmbeddedDatabaseType.H2)
.addScript("classpath:folder/initial-setup.sql")
.build();
}
return dataSource;
}
}
Один из моих тестовых классов JUNIT выглядит так -
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = SampleDBConfig.class)
public class XyxImplTest{
@Autowired
ClassInTestImpl classInTestImpl ;
@Test
public void testMethod(){
.......
}
}
А один из классов, которые я тестирую, выглядит так -
@Component
@Transactional(rollbackFor = Exception.class)
public class ClassInTestImpl implements ClassInTest {
@Autowired
private JdbcTemplate jdbcTemplate;
.....