StaticClass.java:
package com.anoop.test;
public class StaticClass {
public static String getName(){
return "Anoop";
}
public static void setName(String name){
System.out.println(name);
}
}
AnoopClass.java:
package com.anoop.test;
public class AnoopClass {
private String name;
public void doSomething(){
name = StaticClass.getName();
name = name + " does something";
}
public String getName(){
return name;
}
}
The Junit class:
package com.anoop.test;
import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import static org.powermock.api.easymock.PowerMock.*;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.isA;
import static org.easymock.EasyMock.isNull;
@RunWith(PowerMockRunner.class)
@PrepareForTest({StaticClass.class})
public class AnoopClassTest {
private AnoopClass anoopClass;
@Before
public void setUp() throws Exception {
anoopClass = new AnoopClass();
}
@Test
public void testDoSomething() {
mockStatic(StaticClass.class);
expect(StaticClass.getName()).andReturn("Deepa");
replay(StaticClass.class);
anoopClass.doSomething();
System.out.println(anoopClass.getName());
verify(StaticClass.class);
}
}
Error trace:
java.lang.NoClassDefFoundError: com.anoop.test.StaticClass$
$EnhancerByCGLIB$$3caf6adf
at sun.reflect.GeneratedSerializationConstructorAccessor6.newInstance
(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Constructor.java:521)
at
org.easymock.classextension.internal.objenesis.instantiator.sun.SunReflectionFactoryInstantiator.newInstance
(SunReflectionFactoryInstantiator.java:40)
at
org.easymock.classextension.internal.objenesis.ObjenesisBase.newInstance
(ObjenesisBase.java:58)
at
org.easymock.classextension.internal.objenesis.ObjenesisHelper.newInstance
(ObjenesisHelper.java:28)
at
org.easymock.classextension.internal.ObjenesisClassInstantiator.newInstance
(ObjenesisClassInstantiator.java:12)
at
org.powermock.api.easymock.internal.signedsupport.SignedSupportingClassProxyFactory.createProxy
(SignedSupportingClassProxyFactory.java:201)
at org.easymock.internal.MocksControl.createMock(MocksControl.java:
40)
at org.powermock.api.easymock.PowerMock.doCreateMock(PowerMock.java:
2155)
at org.powermock.api.easymock.PowerMock.doMock(PowerMock.java:2110)
at org.powermock.api.easymock.PowerMock.mockStatic(PowerMock.java:
290)
at com.anoop.test.AnoopClassTest.testDoSomething(AnoopClassTest.java:
28)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:64)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:615)
at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:66)
at
org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl
$PowerMockJUnit44MethodRunner.runTestMethod
(PowerMockJUnit44RunnerDelegateImpl.java:322)
at org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:
86)
at
org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters
(MethodRoadie.java:94)
at
org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl
$PowerMockJUnit44MethodRunner.executeTest
(PowerMockJUnit44RunnerDelegateImpl.java:309)
at
org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl
$PowerMockJUnit47MethodRunner.executeTestInSuper
(PowerMockJUnit47RunnerDelegateImpl.java:73)
at
org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl
$PowerMockJUnit47MethodRunner.executeTest
(PowerMockJUnit47RunnerDelegateImpl.java:53)
at
org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl
$PowerMockJUnit44MethodRunner.runBeforesThenTestThenAfters
(PowerMockJUnit44RunnerDelegateImpl.java:297)
at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:
84)
at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:49)
at
org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.invokeTestMethod
(PowerMockJUnit44RunnerDelegateImpl.java:222)
at
org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.runMethods
(PowerMockJUnit44RunnerDelegateImpl.java:161)
at
org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl
$1.run(PowerMockJUnit44RunnerDelegateImpl.java:135)
at org.junit.internal.runners.ClassRoadie.runUnprotected
(ClassRoadie.java:34)
at org.junit.internal.runners.ClassRoadie.runProtected
(ClassRoadie.java:44)
at
org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.run
(PowerMockJUnit44RunnerDelegateImpl.java:133)
at
org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.run
(JUnit4TestSuiteChunkerImpl.java:112)
at
org.powermock.modules.junit4.common.internal.impl.AbstractCommonPowerMockRunner.run
(AbstractCommonPowerMockRunner.java:44)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run
(JUnit4TestReference.java:38)
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)
On Nov 24, 4:10 pm, Johan Haleby <
johan.hal...@gmail.com> wrote:
> Could you reproduce this and show me the test and code under test?
> Does it happen in Eclipse or maven or both?
>