Когда я использую аннотацию Spy вместе с PowerMock в моем тестовом примере JUnit, она выдает исключение RuntimeException, но когда я использую аннотацию Mock вместе с PowerMock, тестовый пример работает нормально. Кто-нибудь может посоветовать мне мою проблему?
Это мой код
@RunWith(PowerMockRunner.class)
@PrepareForTest({DBConnectionPool.class})
@PowerMockIgnore("javax.management.*")
public class TestAbcController {
private static final Logger logger = Logger.getLogger(TestAbcController .class.getName());
public TestAbcController () {
}
@Spy
private SampleDao mockDao;
@InjectMocks
private AbcController ctr;
private BasicDataSource ds = null;
private MockMvc mockMvc;
@BeforeClass
public static void setUpClass() {
logger.setLevel(Level.INFO);
PowerMockito.mockStatic(DBConnectionPool.class);
PowerMockito.when(DBConnectionPool.getDataSource()).thenReturn(UnitTestDbConnection.getDataSource());
}
@Test
public void testMain() {
when(mockDao.getMap()).thenReturn(new HashMap());
}
Ниже приводится подробное описание исключения.
Я исправил эту проблему после обновления mockito-core до 2.8.9 и powermock до 1.7.4.