java - Mock Files with PowerMockito -
java - Mock Files with PowerMockito -
i have next test code:
@runwith(powermockrunner.class) @preparefortest({logger.class, files.class}) public class testclass { private static final list<string> list = new arraylist<string>() {{ add("some entry"); }}; private static final path path = paths.get("/tmp/foo"); @before public void setup() { powermockito.spy(files.class); powermockito.doreturn(list).when(files.class, "readalllines", path, charset.defaultcharset()); } @test public void test() {} }
the code above throws "nosuchfileexception" on lastly line. here stacktrace:
java.nio.file.nosuchfileexception: /tmp/foo @ sun.nio.fs.unixexception.translatetoioexception(unixexception.java:86) @ sun.nio.fs.unixexception.rethrowasioexception(unixexception.java:102) @ sun.nio.fs.unixexception.rethrowasioexception(unixexception.java:107) @ sun.nio.fs.unixfilesystemprovider.newbytechannel(unixfilesystemprovider.java:214) @ java.nio.file.files.newbytechannel(files.java:317) @ java.nio.file.files.newbytechannel(files.java:363) @ java.nio.file.spi.filesystemprovider.newinputstream(filesystemprovider.java:380) @ java.nio.file.files.newinputstream(files.java:108) @ java.nio.file.files.newbufferedreader(files.java:2677) @ java.nio.file.files.readalllines(files.java:3033) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:606) @ 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:859) @ org.powermock.reflect.whitebox.invokemethod(whitebox.java:466) @ org.powermock.api.mockito.internal.expectation.powermockitostubberimpl.when(powermockitostubberimpl.java:106) @ testclass.setup(testclass.java:29) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:606) @ org.junit.internal.runners.methodroadie.runbefores(methodroadie.java:129) @ org.junit.internal.runners.methodroadie.runbeforesthentestthenafters(methodroadie.java:93) @ 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:84) @ 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:34) @ org.junit.internal.runners.classroadie.runprotected(classroadie.java:44) @ org.powermock.modules.junit4.internal.impl.powermockjunit44runnerdelegateimpl.run(powermockjunit44runnerdelegateimpl.java:118) @ org.powermock.modules.junit4.common.internal.impl.junit4testsuitechunkerimpl.run(junit4testsuitechunkerimpl.java:101) @ org.powermock.modules.junit4.common.internal.impl.abstractcommonpowermockrunner.run(abstractcommonpowermockrunner.java:53) @ org.powermock.modules.junit4.powermockrunner.run(powermockrunner.java:53) @ 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)
i can't quite doing wrong here.
i found issue: problem files scheme class.
https://code.google.com/p/powermock/wiki/mocksystem
java mockito powermock
Comments
Post a Comment