Class:
package demo;
public class MockSelfPrivateFieldServiceClass {
MockSelfPrivateFieldServiceClass instance = new MockSelfPrivateFieldServiceClass();
private Boolean privateMethodSub()
{
//System.out.println("privateMethodSub...");
return true;
}
}
Test Class:
package application;
import static org.junit.Assert.assertEquals;
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.legacy.PowerMockRunner;
import org.powermock.reflect.Whitebox;
import demo.MockSelfPrivateFieldServiceClass;
@RunWith(PowerMockRunner.class)
@PrepareForTest(MockSelfPrivateFieldServiceClass.class)
public class MockSelfPrivateFieldServiceClassTest {
@Test
public void testInvokePrivateMethod() throws Exception {
MockSelfPrivateFieldServiceClass tested = new MockSelfPrivateFieldServiceClass();
Boolean expected = true;
Boolean actual = (Boolean) Whitebox.invokeMethod(tested, "privateMethodSub");
assertEquals("Expected and actual did not match", expected, actual);
}
}
Trace:
java.lang.StackOverflowError
at java.lang.Class.getParameterTypesSignature(Class.java:2046)
at java.lang.Class.getDeclaredMethod(Class.java:590)
at net.sf.cglib.proxy.Enhancer.getCallbacksSetter(Enhancer.java:630)
at net.sf.cglib.proxy.Enhancer.isEnhanced(Enhancer.java:604)
at org.powermock.api.extension.proxyframework.ProxyFrameworkImpl.isProxy(ProxyFrameworkImpl.java:29)
at org.powermock.reflect.internal.WhiteboxImpl.getUnmockedType(WhiteboxImpl.java:1783)
at org.powermock.reflect.internal.WhiteboxImpl.getConstructor(WhiteboxImpl.java:248)
at org.powermock.core.MockGateway.newInstanceCall(MockGateway.java:192)
at demo.MockSelfPrivateFieldServiceClass.<init>(MockSelfPrivateFieldServiceClass.java:5)
...
...
...
...
at demo.MockSelfPrivateFieldServiceClass.<init>(MockSelfPrivateFieldServiceClass.java:5)
at demo.MockSelfPrivateFieldServiceClass.<init>(MockSelfPrivateFieldServiceClass.java:5)
at application.MockSelfPrivateFieldServiceClassTest.testInvokePrivateMethod(MockSelfPrivateFieldServiceClassTest.java:24)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:599)
at org.junit.internal.runners.TestMethodRunner.executeMethodBody(TestMethodRunner.java:99)
at org.powermock.modules.junit4.legacy.internal.impl.testcaseworkaround.PowerMockJUnit4LegacyTestMethodRunner.runUnprotected(PowerMockJUnit4LegacyTestMethodRunner.java:103)
at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
at org.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunner.java:75)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:599)
at org.powermock.reflect.internal.WhiteboxImpl.performMethodInvocation(WhiteboxImpl.java:2014)
at org.powermock.reflect.internal.WhiteboxImpl.doInvokeMethod(WhiteboxImpl.java:885)
at org.powermock.reflect.internal.WhiteboxImpl.invokeMethod(WhiteboxImpl.java:801)
at org.powermock.reflect.Whitebox.invokeMethod(Whitebox.java:442)
at org.powermock.modules.junit4.legacy.internal.impl.testcaseworkaround.PowerMockJUnit4LegacyTestMethodRunner.run(PowerMockJUnit4LegacyTestMethodRunner.java:66)
at org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(TestClassMethodsRunner.java:66)
at org.powermock.modules.junit4.legacy.internal.impl.testcaseworkaround.PowerMockJUnit4LegacyTestClassMethodsRunner.run(PowerMockJUnit4LegacyTestClassMethodsRunner.java:96)
at org.powermock.modules.junit4.legacy.internal.impl.PowerMockJUnit4LegacyRunnerDelegateImpl$1.runUnprotected(PowerMockJUnit4LegacyRunnerDelegateImpl.java:69)
at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
at org.powermock.modules.junit4.legacy.internal.impl.PowerMockJUnit4LegacyRunnerDelegateImpl.run(PowerMockJUnit4LegacyRunnerDelegateImpl.java:85)
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.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:45)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Original issue reported on code.google.com by omerbatmaz@gmail.com on 27 Jan 2013 at 8:34
Original issue reported on code.google.com by
omerbatmaz@gmail.com
on 27 Jan 2013 at 8:34