我正在尝试使用 mockito 为注入 ComboPooledDataSource 的类编写测试用例。
我收到一条错误消息,说 ComboPooledDataSource 是最终类,不能被模拟。所以,我正在考虑模拟接口(数据源)并将其用于测试用例,但不知道该怎么做。
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();
}
comboPoolUser 中调用 getConnection 的方法:
public void setConnection() {
try {
connection = comboPooledDataSource.getConnection();
} catch (SQLException e) {
throw new RuntimeException("error",e);
}
}
我的“comboPoolUser”构造函数接受了一个 ComboPooledDataSource,但我试图模拟一个“DataSource”以进行测试,所以我得到一个“找不到符号:构造函数 comboPoolUser(javax.sql.DataSource)”错误。这样做的正确方法是什么?