2017-01-05 30 views
0

私は現在、アプリケーションの開発にスプリングブートを使用しています。この場合、データソースを含むほとんどのBeanが自動的に設定されます。しかし、私は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(); 

    } 
} 

これは問題なく動作します。

今、残りのエンドポイントをテストするspring mvc Integrationテストがあります。私は上記のデータベース設定を無視して、スプリングブートが組み込みデータソースを自動的に構成するようにテストを実行します(HSQL dbはクラスパス上にあります)。

どうすれば同じことができますか?

答えて

3

2番目のデータベースを作成し、各データベースのプロファイルを設定することができます。テストの実行中は、@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(); 

    } 
} 
関連する問題