我无法模仿对象close()上的方法java.sql.Connection.我的最终目标是在运行JUnit测试时进行连接池.这将消除单元测试期间的连接开销,因为测试中的代码为每个SQL请求执行connect/close.
我有代码片段来演示这个问题.它成功地模拟了connect(),但无法模拟close()调用.连接和关闭都必须模拟到托管池连接.
由于该close()方法不返回值,我正在使用EasyMock.expectLastCall.
以下代码定义了mock,但是close()从不执行print语句,并且我的连接已关闭.
public class ConnectionPoolTest {
public static final String DATASOURCE_REF = "jdbc/cloudexDS";
public static final String ref = "osgi:service/javax.sql.DataSource/(osgi.jndi.service.name=" + DATASOURCE_REF + ")";
@BeforeClass
public static void setUpBeforeClass() throws Exception
{
//
// set up a simple database connection (e.g. DB2SimpleDataSource)
//
DataSource dbds = connect("localhost", "dbname", "userid", "password", 50000);
//
// now set up mock for the datasource to use the above connection
// …Run Code Online (Sandbox Code Playgroud)