如何使用java反射机制测试私有方法
来源:互联网 发布:怎样开淘宝网店教程 编辑:程序博客网 时间:2024/05/16 12:19
今天在项目中添加了一个私有方法,需要添加测试用例,学习了下用java反射机制测试私有方法,分享如下:
-首先私有方法如下(所在类为YoukuUploaderImpl):
private String checkUrl(String creativeUrl,CreativeAuditInfoView caiv){ if (null == caiv) { log.error("creativeAuditInfoView is null."); return null; } if (null == targetService) { targetService = (TargetService) DspApplicationContextUtil.getContext().getBean("targetService"); } List<FlightTraffic> trafficList = null; try { trafficList = targetService.getAllTrafficByFlight(caiv.getFlightID()); } catch (TargetException e) { log.error("YoukuUploaderImpl.checkUrl.trafficList", e); return null; } if (null != trafficList) { for (FlightTraffic traffic : trafficList) { if(traffic.getType().intValue() != 2){ return creativeUrl; }else{ break; } } } String[] spUrlPoint = creativeUrl.split("\\."); String endUrlPoint = spUrlPoint[spUrlPoint.length - 1]; if(endUrlPoint!=null && endUrlPoint.toLowerCase().equals("html")){ return creativeUrl; } String[] spUrlMark = creativeUrl.split("\\?"); if(spUrlMark.length==2){ return spUrlMark[0]+".html"; } return null; }
测试类中是这样写的:
public String CheckUrlByReflect(String str)throws SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException{ YoukuUploaderImpl youkuUploaderImpl = new YoukuUploaderImpl(); youkuUploaderImpl.setTargetService(targetService); Class<YoukuUploaderImpl> clazz=YoukuUploaderImpl.class; Method method=clazz.getDeclaredMethod("checkUrl",new Class[]{String.class,CreativeAuditInfoView.class}); method.setAccessible(true); Object object = method.invoke(youkuUploaderImpl, new Object[]{str,build(1,1)}); String json = object==null ? "" : object.toString(); log.info("json:"+json); return json; }
可以看出,利用反射机制调用私有方法时,首先需要new一个方法所在类的实例,还要获取这个类的字节码文件,然后用字节码文件获取相应的方法,并且要将方法设为可执行。
同时注意到反射机制调用方法的返回值是一个对象。
0 0
- 如何使用java反射机制测试私有方法
- java如何利用反射机制调用类的私有方法
- java中的反射机制——如何访问私有成员的私有方法
- Java反射机制调用私有方法
- java反射机制调用私有方法
- java反射机制(访问私有字段和私有方法)
- 使用JAVA的反射机制反射带有数组参数的私有方法
- 用java反射机制来测试其他类中的私有方法
- 使用Java反射机制实现访问类中的私有变量或者方法
- 使用Java反射机制实现访问其他类的私有方法
- 使用Java反射机制实现访问其他类的私有方法
- 使用Java反射机制实现访问其他类的私有方法
- java 使用反射机制来获取私有方法和成员变量
- 利用反射测试私有方法
- 通过反射测试私有方法
- 利用JAVA反射机制实现调用私有方法
- 利用java反射机制调用类的私有方法
- 利用JAVA反射机制实现调用私有方法
- Composer使用
- Oracle建数据挖掘模型
- 0欧姆电阻的一些用处
- js函数创建 匿名函数
- webpack笔记
- 如何使用java反射机制测试私有方法
- GAN 论文大汇总
- 头指针 头结点 优点
- Android之调用其他程序
- C++第五次实验报告
- Java关键字transient和volatile小结
- springboot +nginx +freemarker 模板的简单集成
- 嵌入式linux驱动-网络设备驱动笔记
- R语言之决策树CART、C4.5算法