0

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)」エラーが発生します。これを行う正しい方法は何ですか?

4

1 に答える 1