Пересмешивание статического блока (ошибка: java.lang.IllegalStateException) - PullRequest
1 голос
/ 19 сентября 2019

Ошибка: 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)

1 Ответ

1 голос
/ 19 сентября 2019
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 {
...
}
...