unit testing - Parameterized PowerMock tests error while initializing mocks -
i trying run parameterized tests powermock, whenever try instantiate kind of mock exception thrown. using jdk 1.6.
here sample code recreates problem me
test class:
package com.test; import static org.mockito.mockito.mock; import java.util.arraylist; import java.util.list; import org.junit.rule; import org.junit.test; import org.junit.runner.runwith; import org.junit.runner.runner; import org.junit.runners.parameterized; import org.junit.runners.parameterized.parameters; import org.powermock.modules.junit4.rule.powermockrule; @runwith(parameterized.class) public class parameterizedtest { @rule public powermockrule rule = new powermockrule(); @test public void test() { mock(runner.class); } @parameters public static list<object[]> data() { arraylist<object[]> arraylist = new arraylist<object[]>(); arraylist.add(new object[] {}); return arraylist; } }
pom.xml
<project xmlns="http://maven.apache.org/pom/4.0.0" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelversion>4.0.0</modelversion> <groupid>test</groupid> <artifactid>test</artifactid> <version>0.0.1-snapshot</version> <properties> <powermock.version>1.5.1</powermock.version> </properties> <dependencies> <dependency> <groupid>org.powermock</groupid> <artifactid>powermock-core</artifactid> <version>${powermock.version}</version> <scope>test</scope> </dependency> <dependency> <groupid>org.powermock</groupid> <artifactid>powermock-module-junit4</artifactid> <version>${powermock.version}</version> <scope>test</scope> </dependency> <dependency> <groupid>org.powermock</groupid> <artifactid>powermock-api-mockito</artifactid> <version>${powermock.version}</version> <scope>test</scope> </dependency> <dependency> <groupid>org.powermock</groupid> <artifactid>powermock-module-junit4-rule</artifactid> <version>${powermock.version}</version> <scope>test</scope> </dependency> <dependency> <groupid>org.powermock</groupid> <artifactid>powermock-classloading-xstream</artifactid> <version>${powermock.version}</version> <scope>test</scope> </dependency> </dependencies>
stack trace:
java.lang.exceptionininitializererror @ org.mockito.internal.exceptions.stacktrace.conditionalstacktracefilter.<init>(conditionalstacktracefilter.java:17) @ org.mockito.exceptions.base.mockitoexception.filterstacktrace(mockitoexception.java:30) @ org.mockito.exceptions.base.mockitoexception.<init>(mockitoexception.java:19) @ org.mockito.exceptions.misusing.mockitoconfigurationexception.<init>(mockitoconfigurationexception.java:18) @ org.mockito.internal.configuration.classpathloader.loadimplementations(classpathloader.java:145) @ org.mockito.internal.configuration.classpathloader.findpluginimplementation(classpathloader.java:110) @ org.mockito.internal.configuration.classpathloader.findplatformmockmaker(classpathloader.java:106) @ org.mockito.internal.configuration.classpathloader.<clinit>(classpathloader.java:59) @ org.mockito.internal.util.mockutil.<clinit>(mockutil.java:21) @ org.mockito.internal.mockitocore.<init>(mockitocore.java:40) @ org.mockito.mockito.<clinit>(mockito.java:932) @ com.lies.code.parameterizedtest.test(parameterizedtest.java:24) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:39) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:25) @ java.lang.reflect.method.invoke(method.java:597) @ org.junit.runners.model.frameworkmethod$1.runreflectivecall(frameworkmethod.java:44) @ org.junit.internal.runners.model.reflectivecallable.run(reflectivecallable.java:15) @ org.junit.runners.model.frameworkmethod.invokeexplosively(frameworkmethod.java:41) @ org.junit.internal.runners.statements.invokemethod.evaluate(invokemethod.java:20) @ org.powermock.modules.junit4.rule.powermockstatement$1.run(powermockrule.java:52) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:39) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:25) @ java.lang.reflect.method.invoke(method.java:597) @ org.powermock.reflect.internal.whiteboximpl.performmethodinvocation(whiteboximpl.java:2014) @ org.powermock.reflect.internal.whiteboximpl.doinvokemethod(whiteboximpl.java:885) @ org.powermock.reflect.internal.whiteboximpl.invokemethod(whiteboximpl.java:713) @ org.powermock.reflect.whitebox.invokemethod(whitebox.java:401) @ org.powermock.classloading.classloaderexecutor.execute(classloaderexecutor.java:98) @ org.powermock.classloading.classloaderexecutor.execute(classloaderexecutor.java:78) @ org.powermock.modules.junit4.rule.powermockstatement.evaluate(powermockrule.java:49) @ org.junit.runners.blockjunit4classrunner.runnotignored(blockjunit4classrunner.java:79) @ org.junit.runners.blockjunit4classrunner.runchild(blockjunit4classrunner.java:71) @ org.junit.runners.blockjunit4classrunner.runchild(blockjunit4classrunner.java:49) @ org.junit.runners.parentrunner$3.run(parentrunner.java:193) @ org.junit.runners.parentrunner$1.schedule(parentrunner.java:52) @ org.junit.runners.parentrunner.runchildren(parentrunner.java:191) @ org.junit.runners.parentrunner.access$000(parentrunner.java:42) @ org.junit.runners.parentrunner$2.evaluate(parentrunner.java:184) @ org.junit.runners.parentrunner.run(parentrunner.java:236) @ org.junit.runners.suite.runchild(suite.java:128) @ org.junit.runners.suite.runchild(suite.java:24) @ org.junit.runners.parentrunner$3.run(parentrunner.java:193) @ org.junit.runners.parentrunner$1.schedule(parentrunner.java:52) @ org.junit.runners.parentrunner.runchildren(parentrunner.java:191) @ org.junit.runners.parentrunner.access$000(parentrunner.java:42) @ org.junit.runners.parentrunner$2.evaluate(parentrunner.java:184) @ org.junit.runners.parentrunner.run(parentrunner.java:236) @ org.eclipse.jdt.internal.junit4.runner.junit4testreference.run(junit4testreference.java:50) @ org.eclipse.jdt.internal.junit.runner.testexecution.run(testexecution.java:38) @ org.eclipse.jdt.internal.junit.runner.remotetestrunner.runtests(remotetestrunner.java:467) @ org.eclipse.jdt.internal.junit.runner.remotetestrunner.runtests(remotetestrunner.java:683) @ org.eclipse.jdt.internal.junit.runner.remotetestrunner.run(remotetestrunner.java:390) @ org.eclipse.jdt.internal.junit.runner.remotetestrunner.main(remotetestrunner.java:197) caused by: java.lang.nullpointerexception @ org.mockito.internal.exceptions.stacktrace.stacktracefilter.<clinit>(stacktracefilter.java:21) ... 55 more
ever since heard @rule feature of powermock have wanted use it, have run similar issues one.
is there way work?
thank takes time reply
have tried using powermockignore? error have got seems of classloading, , can defer loading of actual classes specifying them in powermockignore annotation
Comments
Post a Comment