2012-05-10 2 views
1

데이터 소스와 InitialContext를 조롱하여 컨테이너 외부의 데이터베이스에 연결하려고합니다. 이것은 내가에 대한 모의를 사용하려는 논리입니다 :jdbc 데이터 소스 조롱의 어려움

 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 모의 작동 중입니다.

답변

0

PowerMock.replayAll을 사용하려면 EasyMock.createMock 대신 PowerMock.createMock을 사용해야한다고 생각합니다.

+0

내가 해냈어.하지만 문제가 해결되지 않아. – josephino