Ho un test di integrazione in cui alcune impostazioni vengono eseguite utilizzando Guice. Sto usando Mockito per deridere alcune delle dipendenze. Questo ha funzionato bene per me fino ad ora. Avevo bisogno di usare PowerMock per qualche altra dipendenza. Ora Mockito sta gettando un NullPointerException
durante il caricamento di una delle sue proprie classi:Mockito lancia NullPointer durante la creazione di un oggetto fittizio
java.lang.ExceptionInInitializerError
at org.mockito.internal.exceptions.stacktrace.ConditionalStackTraceFilter.<init>(ConditionalStackTraceFilter.java:17)
at org.mockito.exceptions.base.MockitoException.filterStackTrace(MockitoException.java:30)
at org.mockito.exceptions.base.MockitoException.<init>(MockitoException.java:19)
at org.mockito.exceptions.misusing.MockitoConfigurationException.<init>(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.<clinit>(ClassPathLoader.java:59)
at org.mockito.internal.util.MockUtil.<clinit>(MockUtil.java:21)
at org.mockito.internal.MockitoCore.<init>(MockitoCore.java:40)
at org.mockito.Mockito.<clinit>(Mockito.java:932)
<snip my test code and some Guice>
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.<clinit>(StackTraceFilter.java:21)
... 39 more
il codice (tagliato verso il basso):
@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.
}
}
non riuscivo a trovare nulla su questo essere un bug noto in Mockito. Qualcuno ha un suggerimento su come risolvere questo?
Ho spostato del codice da '@ BeforeClass' a' @ Before', quindi viene chiamato un po 'più tardi. Il problema originale poi scompare, ma ora sto riscontrando altri errori, tra cui questo: http://code.google.com/p/powermock/issues/detail?id=277 – Jorn
Visto questo. Ma come per il collegamento, questo dovrebbe risolvere - '[@PowerMockIgnore (" javax.management. * ")] Lo risolve' – rajesh