Junit 当同时使用Spy和PowerMock时引发RuntimeException
当我在JUnit测试用例中与PowerMock一起使用Spy注释时,它会引发RuntimeException,但当我与PowerMock一起使用Mock注释时,测试用例工作正常。 有人能就我的问题提出建议吗 这是我的密码Junit 当同时使用Spy和PowerMock时引发RuntimeException,junit,powermock,spy,Junit,Powermock,Spy,当我在JUnit测试用例中与PowerMock一起使用Spy注释时,它会引发RuntimeException,但当我与PowerMock一起使用Mock注释时,测试用例工作正常。 有人能就我的问题提出建议吗 这是我的密码 @RunWith(PowerMockRunner.class) @PrepareForTest({DBConnectionPool.class}) @PowerMockIgnore("javax.management.*") public class TestAbcContro
@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());
}
下面是例外情况的详细信息
java.lang.RuntimeException:在上调用beforeTestMethod方法
PowerMock测试侦听器
org.powermock.api.extension.listener。AnnotationEnabler@d86a6f失败。
在
org.powermock.api.mockito.internal.configuration.PowerMockitoSpyAnnotationEngine.process(PowerMockitoSpyAnnotationEngine.java:53)
在
org.powermock.api.mockito.internal.configuration.PowerMockitoInjectingAnnotationEngine.process(PowerMockitoInjectingAnnotationEngine.java:32)
在
org.powermock.api.extension.listener.AnnotationEnabler.injectSpiesAndInjectToSetters(AnnotationEnabler.java:60)
在
org.powermock.api.extension.listener.AnnotationEnabler.beforeTestMethod(AnnotationEnabler.java:55)
在
org.powermock.tests.utils.impl.PowerMockTestNotifierImpl.notifyBeforeTestMethod(PowerMockTestNotifierImpl.java:90)
在
org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.executeTest(PowerMockJUnit44RunnerDelegateImpl.java:292)
在
org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner.executeTestInSuper(PowerMockJUnit47RunnerDelegateImpl.java:127)
在
org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner.executeTest(PowerMockJUnit47RunnerDelegateImpl.java:82)
在
org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.runbeforesthenTestthenAfter(PowerMockJUnit44RunnerDelegateImpl.java:282)
在
org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:87)
位于org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:50)
在
org.powermock.modules.junit4.internal.impl.powermockjunit44runnerdelegateinpl.invokeTestMethod(powermockjunit44runnerdelegateinpl.java:207)
在
org.powermock.modules.junit4.internal.impl.powermockjunit44runnerdelegateinpl.runMethods(powermockjunit44runnerdelegateinpl.java:146)
在
org.powermock.modules.junit4.internal.impl.powermockjunit44runnerdelegateinpl$1.run(powermockjunit44runnerdelegateinpl.java:120)
在
org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:34)
在
org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:44)
在
org.powermock.modules.junit4.internal.impl.powermockjunit44runnerdelegateinpl.run(powermockjunit44runnerdelegateinpl.java:122)
在
org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.run(JUnit4TestSuiteChunkerImpl.java:106)
在
org.powermock.modules.junit4.common.internal.impl.AbstractCommonPowerMockRunner.run(AbstractCommonPowerMockRunner.java:53)
在
org.powermock.modules.junit4.PowerMockRunner.run(PowerMockRunner.java:59)
在
org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:264)
在
org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
在
org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:124)
我在将mockito core升级到2.8.9和powermock升级到1.7.4之后修复了此问题。我在将mockito core升级到2.8.9和powermock升级到1.7.4之后修复了此问题