[英]Difficulties on mocking a jdbc 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();
問題:模擬不適用於數據源,但始終為null,無論InitialContext的Mock是否有效。
我想,如果您想讓PowerMock.replayAll
工作,則需要使用PowerMock.createMock
而不是EasyMock.createMock
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.