2017-01-05 4 views
0

В настоящее время я использую весеннюю загрузку для разработки моего приложения. В этом случае он автоматически настраивает большинство компонентов, включая источник данных. Однако мне нужно было настроить конфигурацию Datasource и, следовательно, создать новый DatabaseConfig следующим образом.Тест интеграции интеграции весны

@Configuration 
public class DatabaseConfig { 

    @Bean 
    public DataSource dataSource() { 
     DataSourceBuilder dataSourceBuilder = DataSourceBuilder.create(); 
     dataSourceBuilder.url(...); 
     dataSourceBuilder.username(...); 
     dataSourceBuilder.password(...); 
     dataSourceBuilder.driverClassName(...); 
     return dataSourceBuilder.build(); 

    } 
} 

Это прекрасно работает.

Теперь у меня есть тест интеграции весны mvc, который тестирует остальные конечные точки. Мне нужно игнорировать приведенную выше конфигурацию базы данных при запуске тестов, чтобы весна загрузила автоматически настроенный встроенный источник данных (HSQL db находится на пути к классу)

Как я могу выполнить то же самое?

ответ

3

Вы можете создать вторую базу данных и установить профиль для каждой базы данных. При выполнении ваших тестов вам нужно только написать @ActiveProfile("nameOfProfile") над классом Test. Например:

@Bean 
@Profile("One") 
    public DataSource dataSource() { 
     DataSourceBuilder dataSourceBuilder = DataSourceBuilder.create(); 
     dataSourceBuilder.url(...); 
     dataSourceBuilder.username(...); 
     dataSourceBuilder.password(...); 
     dataSourceBuilder.driverClassName(...); 
     return dataSourceBuilder.build(); 
@Bean 
@Profile("Two") 
    public DataSource dataSource() { 
     DataSourceBuilder dataSourceBuilder = DataSourceBuilder.create(); 
     dataSourceBuilder.url(...); 
     dataSourceBuilder.username(...); 
     dataSourceBuilder.password(...); 
     dataSourceBuilder.driverClassName(...); 
     return dataSourceBuilder.build(); 

@SpringBootTest 
@ActiveProfile("Two") 
public class Test{ 
} 
+0

Это ближе к тому, что я искал. – ak123

0

Вы можете создать конфигурацию базы данных для тестов и аннотирования тест боб в качестве первичного:

@Configuration 
public class TestDatabaseConfig { 

    @Bean 
    @Primary 
    public DataSource dataSource() { 
     DataSourceBuilder dataSourceBuilder = DataSourceBuilder.create(); 
     dataSourceBuilder.url(...); 
     dataSourceBuilder.username(...); 
     dataSourceBuilder.password(...); 
     dataSourceBuilder.driverClassName(...); 
     return dataSourceBuilder.build(); 

    } 
} 
Смежные вопросы