起因
测试反馈测试环境导入excel,空数据依然会被导入,但是开发本地执行是正常的。
相关代码如下
public static boolean checkObjAllFieldsIsNull(Object object) {
if (null == object) {
return true;
}
try {
for (Field field : object.getClass().getDeclaredFields()) {
if (!Objects.equals("serialVersionUID", field.getName()))) {
ReflectionUtils.makeAccessible(field);
if (field.get(object) != null && StringUtils.isNotBlank(field.get(object).toString())) {
return false;
}
}
}
} catch (Exception e) {
log.error("判断字段属性为空异常", e);
}
return true;
}
通过反射字段,如果字段都为空,就过滤。 在测试环境 日志输出以后,发现打印出了一个boolean数组
解决
测试okd容器集成了jacoco来统计单元测试的代码覆盖率,用反射就会射出这个$jacocoData,对应的只要在相关判断那里校验一下过滤掉jacocoData带来的影响就好了