好问题
Good  Question
  • 首 页
  • 问题
    • PHP
    • JAVA
    • CPlusPlus
    • C#
    • SQL
  • 关 于
  • 联 系
UT问题,如何测试具有私有方法、字段或内部类的类? 关闭 返回上一级  

UT问题,如何测试具有私有方法、字段或内部类的类?
+ 查看更多

发布日期:2018-03-10 14:22
分类:JAVA
浏览次数:1201
我如何使用JUnit测试具有私有方法、字段或内部类的类?为能够运行测试的方法更改访问修饰符似乎不好。

回答

如果您有一些遗留应用程序,并且不允许更改方法的可见性,那么测试私有方法的最好方法是使用反射。在内部,我们使用助手来获取/设置私有和私有静态变量,以及调用私有和私有静态方法。下面的模式会让你做很多与私有方法和字段相关的事情。当然,您不能通过反射来改变私有静态最终变量。
Method method = targetClass.getDeclaredMethod(methodName, argClasses);
method.setAccessible(true);
return method.invoke(targetObject, argObjects);

对于字段:
ield field = targetClass.getDeclaredField(fieldName);
field.setAccessible(true);
field.set(object, value);
注释:
1. targetClass.getDeclaredMethod(methodName, argClasses) 让你访问私人方法,同样适用于getdeclaredfield。
2.(访问)私有的需要设置为可访问的
上一篇用一行代码初始化ArrayList
如何有效遍历Map中的每一个条目?下一篇
下一篇如何有效遍历Map中的每一个条目?

最新文章

  • 函数`__construct`用来干嘛的
    发布日期:2018-03-26
  • 通过访客的IP得到他们的地区
    发布日期:2018-03-26
  • 合并两个PHP对象的最好的方法是什么?
    发布日期:2018-03-26
  • 该如何把一该如何把一个对象转化成数组?
    发布日期:2018-03-26
  • 什么是输出缓冲区?
    发布日期:2018-03-26
  • 在PHP中怎么把用逗号分隔的字符串分隔在一个数组里?
    发布日期:2018-03-26
  • 在PHP中使用foreach循环时查找数组的最后一个元素
    发布日期:2018-03-26
关于好问
收集整理一些有用的问题和回答,造福中国的程序旺和IT喵们!
友情链接
起飞页 
相关信息
版权声明
Copyright © 2016 - 2022  苏州卡达网络科技有限公司 备案号:苏ICP备09008221号