我是靠谱客的博主 老实身影,这篇文章主要介绍怎么Mock一个private static final变量,现在分享给大家,希望可以做个参考。

参考链接

IT屋
博客园

目标类

复制代码
1
2
3
4
5
class TargetClass{ private static final String passString=null; ... }

测试类

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
@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内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部