我是靠谱客的博主 老实身影,最近开发中收集的这篇文章主要介绍怎么Mock一个private static final变量,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

参考链接

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 {
//将变量更改为public可访问
field.setAccessible(true);
//去除final
Field modifiersField = Field.class.getDeclaredField("modifiers");
modifiersField.setAccessible(true);
modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL);
//更改变量的值
field.set(null, newValue);
}
}

最后

以上就是老实身影为你收集整理的怎么Mock一个private static final变量的全部内容,希望文章能够帮你解决怎么Mock一个private static final变量所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(34)

评论列表共有 0 条评论

立即
投稿
返回
顶部