2012-12-12 28 views
5

के साथ त्रुटि मैं PowerMock के साथ Robolectric का उपयोग करना चाहता हूं, लेकिन मुझे उन्हें चलाने में कुछ परेशानी हो रही है। मुझे लगता है कि यह एक निर्भरता मुद्दा है - अभी मेरे जार ग्रहण में प्रबंधित हैं।ExceptionInInitializer PowerMock और Robolectric

मुझे दो तरीकों से एक अपवादInInitializer त्रुटि मिल रही है। पहली यह है:

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.internal.stubbing.defaultanswers.ReturnsMocks.<init>(ReturnsMocks.java:18) 
at org.mockito.Answers.<clinit>(Answers.java:52) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:597) 
at java.lang.Class.getEnumConstantsShared(Class.java:2942) 
at java.lang.Class.enumConstantDirectory(Class.java:2963) 
at java.lang.Enum.valueOf(Enum.java:191) 
at sun.reflect.annotation.AnnotationParser.parseEnumValue(AnnotationParser.java:413) 
at sun.reflect.annotation.AnnotationParser.parseMemberValue(AnnotationParser.java:278) 
at java.lang.reflect.Method.getDefaultValue(Method.java:720) 
at sun.reflect.annotation.AnnotationType.<init>(AnnotationType.java:99) 
at sun.reflect.annotation.AnnotationType.getInstance(AnnotationType.java:66) 
at sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:202) 
at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:69) 
at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:52) 
at java.lang.reflect.Field.declaredAnnotations(Field.java:1014) 
at java.lang.reflect.Field.getDeclaredAnnotations(Field.java:1007) 
at java.lang.reflect.AccessibleObject.getAnnotations(AccessibleObject.java:175) 
at org.junit.runners.model.FrameworkField.getAnnotations(FrameworkField.java:21) 
at org.junit.runners.model.TestClass.addToAnnotationLists(TestClass.java:50) 
at org.junit.runners.model.TestClass.<init>(TestClass.java:43) 
at org.junit.runners.ParentRunner.<init>(ParentRunner.java:65) 
at org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:58) 
at com.xtremelabs.robolectric.RobolectricTestRunner.<init>(RobolectricTestRunner.java:213) 
at com.xtremelabs.robolectric.RobolectricTestRunner.<init>(RobolectricTestRunner.java:110) 
at com.xtremelabs.robolectric.RobolectricTestRunner.<init>(RobolectricTestRunner.java:97) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:513) 
at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:31) 
at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:24) 
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57) 
at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:29) 
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57) 
at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:24) 
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.<init>(JUnit4TestReference.java:33) 
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestClassReference.<init>(JUnit4TestClassReference.java:25) 
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:48) 
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:38) 
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:452) 
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) 
... 56 more 

यह PowerMockRunner साथ ठीक काम करता है, लेकिन एक नियम के रूप में के साथ एक ही अपवाद फेंकता है:

@RunWith(RobolectricTestRunner.class) 
@PrepareForTest(Logger.class) 
public class Logger_Test { 
    @Mock Config config; 

    @Before 
    public void setUp() { 
     MockitoAnnotations.initMocks(this); 
    } 

साथ विफल। अगर मैं सही ढंग से याद आप बिजली नकली परीक्षण धावक के साथ चलाने के लिए परीक्षण काम कर करना है

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.internal.stubbing.defaultanswers.ReturnsMocks.<init>(ReturnsMocks.java:18) 
at org.mockito.Answers.<clinit>(Answers.java:52) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:597) 
at java.lang.Class.getEnumConstantsShared(Class.java:2942) 
at java.lang.Class.enumConstantDirectory(Class.java:2963) 
at java.lang.Enum.valueOf(Enum.java:191) 
at sun.reflect.annotation.AnnotationParser.parseEnumValue(AnnotationParser.java:413) 
at sun.reflect.annotation.AnnotationParser.parseMemberValue(AnnotationParser.java:278) 
at java.lang.reflect.Method.getDefaultValue(Method.java:720) 
at sun.reflect.annotation.AnnotationType.<init>(AnnotationType.java:99) 
at sun.reflect.annotation.AnnotationType.getInstance(AnnotationType.java:66) 
at sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:202) 
at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:69) 
at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:52) 
at java.lang.reflect.Field.declaredAnnotations(Field.java:1014) 
at java.lang.reflect.Field.getAnnotation(Field.java:1000) 
at org.powermock.classloading.DeepCloner.cloneFields(DeepCloner.java:222) 
at org.powermock.classloading.DeepCloner.performClone(DeepCloner.java:128) 
at org.powermock.classloading.DeepCloner.cloneFields(DeepCloner.java:248) 
at org.powermock.classloading.DeepCloner.performClone(DeepCloner.java:128) 
at org.powermock.classloading.DeepCloner.cloneFields(DeepCloner.java:248) 
at org.powermock.classloading.DeepCloner.performClone(DeepCloner.java:128) 
at org.powermock.classloading.DeepCloner.cloneFields(DeepCloner.java:248) 
at org.powermock.classloading.DeepCloner.performClone(DeepCloner.java:128) 
at org.powermock.classloading.DeepCloner.cloneFields(DeepCloner.java:248) 
at org.powermock.classloading.DeepCloner.performClone(DeepCloner.java:128) 
at org.powermock.classloading.DeepCloner.clone(DeepCloner.java:82) 
at org.powermock.classloading.DeepCloner.clone(DeepCloner.java:69) 
at org.powermock.classloading.ClassloaderExecutor.execute(ClassloaderExecutor.java:89) 
at org.powermock.classloading.ClassloaderExecutor.execute(ClassloaderExecutor.java:78) 
at org.powermock.modules.junit4.rule.PowerMockStatement.evaluate(PowerMockRule.java:49) 
at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79) 
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71) 
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49) 
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) 
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) 
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) 
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) 
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) 
at org.junit.runners.ParentRunner.run(ParentRunner.java:236) 
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) 
... 59 more 
+0

के स्थान में:

@PrepareForTest(Logger.class) public class Logger_Test { @Rule public PowerMockRule rule = new PowerMockRule(); @Mock Config config; @Before public void setUp() { MockitoAnnotations.initMocks(this); } 

साथ विफल। मैंने कभी भी रोबॉलेक्ट्रिक के साथ पावरमैक का उपयोग करने की कोशिश नहीं की लेकिन मेरी भविष्यवाणी उन्हें काम करना मुश्किल होगा क्योंकि कक्षाएं –

+0

कक्षाओं के लिए दोनों क्लासलोडर प्रदान करते हैं, मुझे अपनी परियोजना में एक बहुत ही समान त्रुटि दिखाई दे रही है। मैं रोबिलेक्ट्रिक का उपयोग मॉकिटो के साथ कर रहा हूं, और जैसे ही मैं पावरमैक जार जोड़ता हूं, मेरा पूरा यूनिट परीक्षण सूट इस तरह की त्रुटियों में विफल रहता है। मुझे हानि हो रही है। – mWillis

उत्तर

-2

@RunWith(RobolectricTestRunner.class) उपयोग @RunWith(PowerMockRunner.class)

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^