参考链接
IT屋
博客园
目标类
复制代码
1
2
3
4
5class 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内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复