gpt4 book ai didi

java - 模拟 jdbc 数据源时遇到的困难

转载 作者:行者123 更新时间:2023-12-01 05:20:05 24 4
gpt4 key购买 nike

我想模拟 Datasource 和 InitialContext 以连接到容器外部的数据库。这是我想使用模拟的逻辑:

        Connection con = null;
Context context = new InitialContext();
DataSource datasource = (DataSource) context.lookup("jdbc/chu");
con = datasource.getConnection();

这就是我的做法

        // create the Connection
connection = createMyConnection();//connection i construct manually
// Mock the Datasource
DataSource datasourceMock = EasyMock.createMock(DataSource.class);
EasyMock.expect(datasourceMock.getConnection())
.andReturn(connection).anyTimes();
// Mock the context
Context contextMock = EasyMock.createMock(InitialContext.class);
EasyMock.expect((DataSource)contextMock.lookup("jdbc/chu"))
.andReturn(datasourceMock)
.anyTimes();
PowerMock.expectNew(InitialContext.class).andReturn((InitialContext)contextMock);


// run the mock
PowerMock.replayAll();

问题:模拟不适用于数据源,它始终为空,但是 InitialContext 的模拟正在工作。

最佳答案

如果您想让 PowerMock.replayAll 工作,我认为您需要使用 PowerMock.createMock 而不是 EasyMock.createMock

关于java - 模拟 jdbc 数据源时遇到的困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10538060/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com