簡體   English   中英

模擬jdbc數據源的困難

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM