2016-04-05 13 views
0

私はoracleを使用するプログラムを持っています。 実行されたクエリについていくつかのテストをしたいと思います。DbテストはHSQLDBです。別のテスト用データベースを使用する

public class UserDAODataAccess { 
    private Connection connection; 

    private void getConnection() throws MMException { 
     connection = AutoExternalServices.getDatabase().newConnection(); 
    } 


    List<User> getUser(){ 
     getConnection(); 
     ... 
    } 
} 

テストでは、現在のgetConnectionをバイパスして別のデータベースへの接続を取得できますか?

+0

アプリケーションで純粋なJDBCを実行していますか?または永続性フレームワークを使用していますか?もしそうなら、どちらですか? –

+0

純粋なjdbcを使用します –

+0

AutoExternalServices.getDatabase()のコードは次に何ですか? –

答えて

0

ConnectionAutoExternalServicesからテスト接続で置き換えることができない場合は、警告音を鳴らす必要があります。通常、このような困難は悪い/準最適な設計から来ます。

可能な場合は、Connectionをコンストラクタ引数として指定し、getConnection()メソッドを削除することをおすすめします。これにより、テストのためにConnectionを簡単に交換することができます。

getConnection()をバイパスすると、特別なテストクラスのメソッドをオーバーライドし、システムプロパティのスイッチを含め、これを行うためのすべての種類「ハック」は、あります...

しかし、私ではないだろういずれかをお勧めします ...

関連する問題