问题遇到的现象和发生背景
单测覆盖率要求比较高,但是这个方法的单测是真写不出来,很懵啊
问题相关代码
public static String getFieldValueByFieldName(String fieldName, Object object) {
try {
Field field = object.getClass().getDeclaredField(fieldName);
//设置对象的访问权限,保证对private的属性的访问
field.setAccessible(true);
Object hisValue = field.get(object);
if (null == hisValue) {
return "";
}
String value = "";
String type = field.getType().toString();
if (type.contains("Date")) {
value = DateFormatUtils.format((Date) hisValue, "yyyy-MM-dd HH:mm:ss");
} else {
value = hisValue.toString();
}
return value;
} catch (Exception e) {
return "";
}
}
我的解答思路和尝试过的方法
Test
public void testGetFieldValueByFieldName() {
String fieldName="111";
Object object = new Object();
LogAspect.getFieldTypeByFieldName(fieldName,object);
}
黔驴技穷了,只会形式般地MockITO一下,里面反射,查了基本都是说用反射覆盖私有方法的
我想要达到的结果
基本能覆盖该方法