Suppose I have a class named Util with static fields:
public class Util {
public static field = Param.getValue("param1");
}
and the class Param look like this:
public class Param {
public static field = SomeClass.getValue("someValue");
}
I want to mock and stubb Param.getValue("param1") inside Util, but at the same time I want suppress static initialization for Param class. How can I achieve this?
This is my first attempt but it's not working
@RunWith(PowerMockRunner.class)
@PrepareForTest({Param.class})
@SuppressStaticInitializationFor("py.com.company.Param")
public class Test {
@Test
public void testSomeMethod() {
PowerMockito.mockStatic(Param.class);
when(Param.getValue("value1")).thenReturn("someValue1");
}
}
This is working for me. I get no output, and
SomeClass#getValue
if no@SuppressStaticInitializationFor
:with: