参考链接
IT屋
博客园
目标类
class TargetClass{
private static final String passString=null;
...
}
测试类
@RunWith(PowerMockRunner.class)
@PrepareForTest(TargetClass.class)
class TargetClassTest {
@Test
public void myTest(){
try {
setFinalStatic(TargetClass.class.getDeclaredField("passString"), "hhh");
}
catch (SecurityException e) {fail();}
catch (NoSuchFieldException e) {fail();}
catch (Exception e) {fail();}
}
static void setFinalStatic(Field field, Object newValue) throws Exception {
field.setAccessible(true);
Field modifiersField = Field.class.getDeclaredField("modifiers");
modifiersField.setAccessible(true);
modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL);
field.set(null, newValue);
}
}