小编Ian*_*ett的帖子

EasyMock无法在java.sql.Connection对象上模拟close()方法

我无法模仿对象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)

java junit easymock jdbc

5
推荐指数
0
解决办法
667
查看次数

标签 统计

easymock ×1

java ×1

jdbc ×1

junit ×1