Tôi có một thử nghiệm tích hợp trong đó một số thiết lập được thực hiện bằng cách sử dụng Guice. Tôi đang sử dụng Mockito để chế nhạo một số phụ thuộc. Điều này đã làm việc tốt cho tôi cho đến bây giờ. Tôi cần sử dụng PowerMock cho một số phụ thuộc khác. Bây giờ Mockito là ném một NullPointerException
khi tải một trong các lớp học riêng của mình:Mockito ném NullPointer khi tạo đối tượng giả
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
sự (tỉa xuống) mã:
@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.
}
}
tôi không thể tìm thấy bất cứ điều gì về vấn đề này là một lỗi được biết đến trong Mockito. Có ai có một gợi ý về cách giải quyết này?
Tôi đã chuyển một số mã từ '@ BeforeClass' sang' @ Before', vì vậy nó được gọi sau một thời gian ngắn. Các vấn đề ban đầu sau đó biến mất, nhưng tôi bây giờ chạy vào các lỗi khác, trong số những người khác này: http://code.google.com/p/powermock/issues/detail?id=277 – Jorn
Havent nhìn thấy điều này. Nhưng theo liên kết, điều này sẽ giải quyết - '[@PowerMockIgnore (" javax.management. * ")] Giải quyết nó' – rajesh