模拟静态块(错误:java.lang.IllegalStateException)



错误:java.lang.IllegalStateException:无法加载缓存项

模拟静态块

当模拟扩展具有静态块的超类的类的静态方法时,就会发生这种情况。

java.lang.IllegalStateException: 无法加载缓存项

at org.easymock.cglib.core.internal.LoadingCache.createEntry(LoadingCache.java:79)
at org.easymock.cglib.core.internal.LoadingCache.get(LoadingCache.java:34)
at org.easymock.cglib.core.AbstractClassGenerator$ClassLoaderData.get(AbstractClassGenerator.java:116)
at org.easymock.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:291)
at org.easymock.cglib.proxy.Enhancer.createHelper(Enhancer.java:480)
at org.easymock.cglib.proxy.Enhancer.createClass(Enhancer.java:337)
at org.easymock.internal.ClassProxyFactory.createProxy(ClassProxyFactory.java:173)
at org.easymock.internal.MocksControl.createMock(MocksControl.java:116)
at org.easymock.internal.MocksControl.createMock(MocksControl.java:95)
at org.powermock.api.easymock.PowerMock.doCreateMock(PowerMock.java:2023)
at org.powermock.api.easymock.PowerMock.doMock(PowerMock.java:1970)
at org.powermock.api.easymock.PowerMock.mockStatic(PowerMock.java:259)
PowerMock @SuppressStaticInitialization fixed the issue.
Note: You must not pass the class name but a fully qualified name of class in parameter of @SuppressStaticInitialization
e.g. 
@RunWith(PowerMockRunner.class)
@PrepareForTest({staticClassExample.class}
@SuppressStaticInitialization("com.services.ClassWithStaticBlockInitialization")
public class ClassNameTest {
...
}

相关内容

最新更新