0
votes

I need to write a junit4 test where I need to mock a class with a static member which produces java.lang.ExceptionInInitializerError if not mocked.

ClassToMock classToMock = mock(ClassToMock.class);
PowerMockito.whenNew(ClassToMock.class).withArguments(any()).thenReturn(classToMock);
StaticMember staticMember = mock(StaticMember.class);
PowerMockito.whenNew(StaticMember.class).withArguments(any()).thenReturn(staticMember);

And this is what my class looks like:

public class ClassToMock {
    public static final StaticMember staticMember_ = new StaticMemberDeserializer().deserialize("some argument");
}

Here StaticMemberDeserializer is a deserializer that uses some argument to create StaticMember.

Is there a way to directly mock the class ClassToMock? If no, what can I do to avoid this error?