Mockito在创建模拟对象时抛出NullPointer

我有一个集成测试,其中一些设置是使用Guice完成的。 我正在使用Mockito来模拟一些依赖项。 这对我来说一直很好,直到现在。 我需要将PowerMock用于其他依赖项。 现在Mockito在加载一个自己的类时抛出NullPointerException

 java.lang.ExceptionInInitializerError at org.mockito.internal.exceptions.stacktrace.ConditionalStackTraceFilter.(ConditionalStackTraceFilter.java:17) at org.mockito.exceptions.base.MockitoException.filterStackTrace(MockitoException.java:30) at org.mockito.exceptions.base.MockitoException.(MockitoException.java:19) at org.mockito.exceptions.misusing.MockitoConfigurationException.(MockitoConfigurationException.java:18) at org.mockito.internal.configuration.ClassPathLoader.loadImplementations(ClassPathLoader.java:145) at org.mockito.internal.configuration.ClassPathLoader.findPluginImplementation(ClassPathLoader.java:110) at org.mockito.internal.configuration.ClassPathLoader.findPlatformMockMaker(ClassPathLoader.java:106) at org.mockito.internal.configuration.ClassPathLoader.(ClassPathLoader.java:59) at org.mockito.internal.util.MockUtil.(MockUtil.java:21) at org.mockito.internal.MockitoCore.(MockitoCore.java:40) at org.mockito.Mockito.(Mockito.java:932)  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.junit.internal.runners.ClassRoadie.runBefores(ClassRoadie.java:56) at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:43) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.run(PowerMockJUnit44RunnerDelegateImpl.java:120) at org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.run(JUnit4TestSuiteChunkerImpl.java:101) at org.powermock.modules.junit4.common.internal.impl.AbstractCommonPowerMockRunner.run(AbstractCommonPowerMockRunner.java:53) at org.powermock.modules.junit4.PowerMockRunner.run(PowerMockRunner.java:53) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) Caused by: java.lang.NullPointerException at org.mockito.internal.exceptions.stacktrace.StackTraceFilter.(StackTraceFilter.java:21) ... 39 more 

(修剪)代码:

 @PrepareForTest(MyModule.class) @RunWith(PowerMockRunner.class) public class MyTest { @BeforeClass public static void setUp() { Injector injector = Guice.createInjector(...); MyModule module = PowerMockito.mock(MyModule.class); injector = injector.createChildInjector(...); // Fails in another Mockito.mock() call before it gets to use the mocked Module. } } 

我找不到任何关于这是Mockito中的已知错误。 有没有人有关于如何解决这个问题的建议?

检查此问题

当在即时时创建模拟时,似乎会发生这种情况。

如果我在@Before方法中设置我的模拟,问题就会消失。