junit单元测试中私有方法测试
1、单元测试可以对系统逻辑进行每个单元模块的测试。
2、单元测试也可以作为回归测试的依据,可以避免升级完善功能时引入问题。
3、单元测试要求将代码写的更清晰,更易于测试。
4、有时单元测试需要测试私有方法以及私有静态方法可以采用下述反射方式。
@Test
public void testGetKey(){
Map<String,Object> map = new HashMap<String,Object>();
map.put("pin","abc");
map.put("uuid","test");
map.put("listPic","listPic");
Method method = null;// 要调用的方法是SetCommodity_number
try {
method = UserBehaviorUtil.class.getDeclaredMethod("getKey",new Class[]{String.class,Map.class});
} catch (NoSuchMethodException e) {
e.printStackTrace();
}
method.setAccessible(true);// 允许处理私有方法
try {
Object obj = method.invoke(UserBehaviorUtil.class, new Object[] { "abc",map });// 调用方法
assertNotNull(obj);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
method.setAccessible(false);
}
junit单元测试中私有方法测试的更多相关文章
- junit测试延伸--私有方法测试
关于junit测试的延伸,这里有类概念级别的测试,继承类的测试,接口的测试,抽象类的测试,关于这些类级别的测试,这里我就不做多的赘述了. 关于上面的几个测试就是说,我们不应该单纯的去测试类中的一些方法 ...
- JUnit单元测试中的setUpBeforeClass()、tearDownAfterClass()、setUp()、tearDown()方法小结
编写JUnit单元测试的时候,会用到 setUpBeforeClass().tearDownAfterClass().setUp().tearDown()这四个方法,例如用 eclipse新建一个ju ...
- Junit3.8 私有方法测试
1. 测试类的私有方法时可以采取两种方式:1) 修改方法的访问修饰符,将private修改为default或public(但不推荐采取这种方式).2) 使用反射在测试类中调用目标类的私有方法(推荐). ...
- 使用PowerMockito和Mockito进行模拟测试,包括静态方法测试,私有方法测试等,以及方法执行的坑或者模拟不成功解决
依赖:这个很重要,不同版本用法也有点区别: <dependency> <groupId>org.mockito</groupId> <artifactId&g ...
- SSM项目集成Lucene+IKAnalyzer在Junit单元测试中执行异常
个人博客 地址:http://www.wenhaofan.com/article/20181108132519 问题描述 在项目运行以及main方法中能够正常运行,但是使用junit单元测试时却报如下 ...
- Spring实现类私有方法测试通用方案
现实的业务场景中,可能需要对Spring的实现类的私有方法进行测试. 场景描述: 比如XXXService里有 两个函数a.函数b. 而实现类XXXServiceImpl中实现了函数a.函数b,还包含 ...
- PHP类中私有方法的内部引用
以前习惯了美工和前端开发,现在进阶后端,开始学习PHP,在学习类的时候,碰到了一个私有方法调用的问题. 代码如下: <?php class Person { public function sa ...
- Spring-mvc junit单元测试中 如何回滚?
@RunWith(SpringJUnit4ClassRunner.class) @WebAppConfiguration(value = "src/main/webapp") @C ...
- Junit单元测试中优先使用AssertThat
主要的优点: 1. 易读性 2. 错误信息更方便 推荐阅读:https://objectpartners.com/2013/09/18/the-benefits-of-using-assertthat ...
随机推荐
- 【hadoop2.6.0】通过代码运行程序流程
之前跑了一下hadoop里面自带的例子,现在顺一下如何通过源代码来运行程序. 我懒得装eclipse,就全部用命令行了. 整体参考官网上的:http://hadoop.apache.org/docs/ ...
- LeetCode 202 Happy Number
Problem: Write an algorithm to determine if a number is "happy". A happy number is a numbe ...
- iOS计算字符串的宽度高度
OC开发中会遇到根据字符串和字体大小来算计算出字符串所占的宽高->> 封装方法如下: #import <Foundation/Foundation.h> #import < ...
- ui组件--弹出层layer的使用
帮助文档 下载地址 演示地址
- 3ds max输出图片
通过渲染菜单调出改窗口,然后调整成这种模式,就能渲染出这种效果的图. 可以调背景色: 全局照明:染色,这个控制的是渲染物体的颜色
- Jquery表单序列化和AJAX全局事件
Jquery表单序列化 1.必须放在form标签内: 2.控件必须有name属性: 3.控件的value值会提交到服务器: 如: <form id="form1"> & ...
- WhaleSong
Chasingwaves by myself in theocean of endless sorrow Makingwishes that i will find myherd tomorrow 5 ...
- PHP面向对象——静态属性和静态方法
静态属性 所谓静态属性,也就是这个属性对于这个类来说是唯一的,不管有多少个对象,只要它引用了一个静态对象,那么这些对象引用出来的值肯定是同一个. 静态变量不能使用->这种箭头符号,而是使用::这 ...
- JS中级 - 03:文档宽高及窗口事件(选)
可视区尺寸 document.documentElement.clientWidth document.documentElement.clientHeight 滚动距离 document.body. ...
- 【PHP绘图技术&&验证码绘制】
PHP绘图是比较简单的事情,基本绘图如直线.圆.矩形.弧线.填充矩形.填充扇形.非中文字的打印.中文文字的打印在在下面的代码中会纤细讲解. 需要支持中文的字体,可以到windows自带的字体库中找,并 ...