Gibt es eine Möglichkeit, unten Code zu testen.Hier bin ich Verbindung zur Datenbank mit JNDI.Ich bin neu zu Mockito und nicht einen Weg, um das gleiche zu testen.Junit-Test für Datenbank-Verbindung
0
A
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
ich tat das gleiche, aber seine Fehler an when (initialContext.lookup (jndiName)). thenReturn (dataSource) ;. Ich erhalte java.lang.reflect.InvocationTargetException. – user3541321
versuchen @ PrepareForTest ({YourClass.class}) –