ComboPooledDataSource が注入されたクラスに対して、mockito を使用してケースのテストを作成しようとしています。
ComboPooledDataSource は最終クラスであり、モックできないというエラーが表示されます。そのため、インターフェース(DataSourceのいずれか)をモックしてテストケースに使用することを考えていましたが、その方法がわかりません。
private Datasource cpds;
private Connection connection;
@Test
public void test() throws Exception {
connection = getConn();
cpds = mock(DataSource.class);
when(cpds.getConnection()).thenReturn(connection);
accessor = new comboPoolUser(cpds);
accessor.setConnection();
}
getConnectionを呼び出すcomboPoolUserのメソッド:
public void setConnection() {
try {
connection = comboPooledDataSource.getConnection();
} catch (SQLException e) {
throw new RuntimeException("error",e);
}
}
「comboPoolUser」コンストラクターは ComboPooledDataSource を受け取りますが、テスト用に「DataSource」をモックしようとしているため、「シンボルが見つかりません: コンストラクターのコンボプールユーザー (javax.sql.DataSource)」エラーが発生します。これを行う正しい方法は何ですか?