java - PowerMock again and again initializer error -
i getting error:
java.lang.exceptionininitializererror @ java.lang.class.forname0(native method) @ java.lang.class.forname(unknown source) @ javassist.runtime.desc.getclassobject(desc.java:43) @ javassist.runtime.desc.getclasstype(desc.java:152) @ javassist.runtime.desc.gettype(desc.java:122) @ javassist.runtime.desc.gettype(desc.java:78) @ mh.scene.terrain.mapreadertestnew.testacceptvalidfilenames(mapreadertestnew.java:26) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(unknown source) @ sun.reflect.delegatingmethodaccessorimpl.invoke(unknown source) @ java.lang.reflect.method.invoke(unknown source) @ org.junit.internal.runners.testmethod.invoke(testmethod.java:68) @ org.powermock.modules.junit4.internal.impl.powermockjunit44runnerdelegateimpl$powermockjunit44methodrunner.runtestmethod(powermockjunit44runnerdelegateimpl.java:310) @ org.junit.internal.runners.methodroadie$2.run(methodroadie.java:88) @ org.junit.internal.runners.methodroadie.runbeforesthentestthenafters(methodroadie.java:96) @ org.powermock.modules.junit4.internal.impl.powermockjunit44runnerdelegateimpl$powermockjunit44methodrunner.executetest(powermockjunit44runnerdelegateimpl.java:294) @ org.powermock.modules.junit4.internal.impl.powermockjunit47runnerdelegateimpl$powermockjunit47methodrunner.executetestinsuper(powermockjunit47runnerdelegateimpl.java:127) @ org.powermock.modules.junit4.internal.impl.powermockjunit47runnerdelegateimpl$powermockjunit47methodrunner.executetest(powermockjunit47runnerdelegateimpl.java:82) @ org.powermock.modules.junit4.internal.impl.powermockjunit44runnerdelegateimpl$powermockjunit44methodrunner.runbeforesthentestthenafters(powermockjunit44runnerdelegateimpl.java:282) @ org.junit.internal.runners.methodroadie.runtest(methodroadie.java:86) @ org.junit.internal.runners.methodroadie.run(methodroadie.java:49) @ org.powermock.modules.junit4.internal.impl.powermockjunit44runnerdelegateimpl.invoketestmethod(powermockjunit44runnerdelegateimpl.java:207) @ org.powermock.modules.junit4.internal.impl.powermockjunit44runnerdelegateimpl.runmethods(powermockjunit44runnerdelegateimpl.java:146) @ org.powermock.modules.junit4.internal.impl.powermockjunit44runnerdelegateimpl$1.run(powermockjunit44runnerdelegateimpl.java:120) @ org.junit.internal.runners.classroadie.rununprotected(classroadie.java:33) @ org.junit.internal.runners.classroadie.runprotected(classroadie.java:45) @ org.powermock.modules.junit4.internal.impl.powermockjunit44runnerdelegateimpl.run(powermockjunit44runnerdelegateimpl.java:122) @ org.powermock.modules.junit4.common.internal.impl.junit4testsuitechunkerimpl.run(junit4testsuitechunkerimpl.java:106) @ org.powermock.modules.junit4.common.internal.impl.abstractcommonpowermockrunner.run(abstractcommonpowermockrunner.java:53) @ org.powermock.modules.junit4.powermockrunner.run(powermockrunner.java:59) @ org.eclipse.jdt.internal.junit4.runner.junit4testreference.run(junit4testreference.java:86) @ org.eclipse.jdt.internal.junit.runner.testexecution.run(testexecution.java:38) @ org.eclipse.jdt.internal.junit.runner.remotetestrunner.runtests(remotetestrunner.java:459) @ org.eclipse.jdt.internal.junit.runner.remotetestrunner.runtests(remotetestrunner.java:675) @ org.eclipse.jdt.internal.junit.runner.remotetestrunner.run(remotetestrunner.java:382) @ org.eclipse.jdt.internal.junit.runner.remotetestrunner.main(remotetestrunner.java:192) caused by: java.lang.nullpointerexception @ mh.scene.terrain.tmxmapreader.<clinit>(tmxmapreader.java:84) ... 36 more
that known issues. problem can't find working solution. code of test this:
package mh.scene.terrain; import static org.easymock.easymock.createmock; import static org.junit.assert.assertequals; import static org.junit.assert.assertfalse; import static org.junit.assert.asserttrue; import java.io.file; import mh.cachedresources; import mh.scene.entity.player.entityplayerlocal; import org.junit.test; import org.junit.runner.runwith; import org.powermock.api.easymock.powermock; import org.powermock.core.classloader.annotations.preparefortest; import org.powermock.modules.junit4.powermockrunner; @suppresswarnings("javadoc") @runwith(powermockrunner.class) //@preparefortest(cachedresources.class) public class mapreadertestnew { @test public void testacceptvalidfilenames() { // arrange tmxmapreader reader = new tmxmapreader(); // assert asserttrue(reader.accept(new file("example.tmx"))); asserttrue(reader.accept(new file("/tmp/example.tmx"))); asserttrue(reader.accept(new file("/tmp/example.tsx"))); asserttrue(reader.accept(new file("/tmp/example.tmx.gz"))); assertfalse(reader.accept(new file("/tmp/example.txt"))); assertfalse(reader.accept(new file("/tmp/example.xml"))); assertfalse(reader.accept(new file("/tmp/example.exe"))); assertfalse(reader.accept(new file("/tmp/example"))); } @test public void testreadingmapexample() throws exception { entityplayerlocal pl = createmock(entityplayerlocal.class); map map = new tmxmapreader().readmap("/sewers.tmx", null, pl); // powermock.mockstatic(cachedresources.class); // powermock.replay(cachedresources.class); assertequals(50, map.getheight()); assertequals(50, map.getwidth()); assertequals(1, map.gettilesetcount()); assertequals(3, map.getlayercount()); assertequals(1, map.getobjectsetcount()); } }
that extremely simple, , removing "powermock.mockstatic()" error present when add runwith
any idea?
the problem seems in part of code:
file jar_file = (magichogwarts.class.getprotectiondomain().getcodesource().getlocation() == null ? null : new file(magichogwarts.class.getprotectiondomain().getcodesource().getlocation().getpath()));
that returns null. correct way handle paths testable powermock? particular error thrown when use statement "runwith"
you might need add entityplayerlocal.class
@preparefortest()
. createmock(entityplayerlocal.class)
method causing issue guess. can check code written in once. better if can paste method in question.
Comments
Post a Comment