2016-08-01 26 views

Antwort

0

Natürlich können Sie es tun, aber ich denke, Sie sollten die Dokumentation selbst lesen. Die wichtigsten Punkte hier:

InitialContext initialContext = mock(InitialContext.class); 
DataSource dataSource = mock(DataSource.class); 
Connection expected = mock(Connection.class); 

whenNew(InitialContext.class).withNoArguments().thenReturn(initialContext); 
when(initialContext.lookup(jndiName)).thenReturn(dataSource); 
when(initialContext.getConnection()).thenReturn(connection); 

Connection result = intatnceOfCalss.getJNDIConnection(); 

assertSame("Should be equals", expected, result); 

Auch sollten Sie PowerMock zu Mock Konstrukteure und statischen Methoden verwenden. Haben Deal mit Logger, fügen Sie einfach diesen Code:

@BeforeClass 
public static void setUpClass() { 
    mockStatic(LoggerFactory.class); 
    Logger logger = mock(Logger.class); 
    when(LoggerFactory.getLogger(ApplySqlFileIfExistsChange.class)).thenReturn(logger); 
} 

Vergessen Sie nicht über Anmerkungen:

@RunWith(PowerMockRunner.class) 
@PrepareForTest({LoggerFactory.class}) 

Versuchen Sie, diese doc zu lesen http://site.mockito.org/mockito/docs/current/org/mockito/Mockito.html

+0

ich tat das gleiche, aber seine Fehler an when (initialContext.lookup (jndiName)). thenReturn (dataSource) ;. Ich erhalte java.lang.reflect.InvocationTargetException. – user3541321

+0

versuchen @ PrepareForTest ({YourClass.class}) –