java - Java中只需要为Integer.valueOf()写Junit
问题描述
所以事情就是这样,我在我的代码中发现了 new Integer() 并且现在已弃用我打算将那段代码 (new Integer()) 删除到 Integer.valueOf() 但按照公司规则,我必须编写 Junit对于该更改,我只需要验证该代码图片无需编写该方法的整个覆盖范围,现在我很困惑,我该怎么做。
前:
@SuppressWarnings({ "rawtypes", "unchecked" })
public List getLogsByLcrErrorCodeInLast(String code, long period) throws Exception {
Object params = new ObjectPair(new Integer(code), new MesDbUtil(ibatis).getPastMesDbDate(period));
List mesdbLogs = client.queryForList("LcrLog.getLogsByLcrErrorCodeInLast", params);
Iterator mesdbLogsIter = mesdbLogs.iterator();
List results = new ArrayList();
while (mesdbLogsIter.hasNext()) {
MesDbLcrLog mesdbLog = (MesDbLcrLog) mesdbLogsIter.next();
results.add(mesdbLog.getLog());
}
return results;
}
后::
@SuppressWarnings({ "rawtypes", "unchecked" })
public List getLogsByLcrErrorCodeInLast(String code, long period) throws Exception {
Object params = new ObjectPair(Integer.valueOf(code), new MesDbUtil(ibatis).getPastMesDbDate(period));
List mesdbLogs = client.queryForList("LcrLog.getLogsByLcrErrorCodeInLast", params);
Iterator mesdbLogsIter = mesdbLogs.iterator();
List results = new ArrayList();
while (mesdbLogsIter.hasNext()) {
MesDbLcrLog mesdbLog = (MesDbLcrLog) mesdbLogsIter.next();
results.add(mesdbLog.getLog());
}
return results;
}
我试着做如下,我不知道它是否正确,并且因为代码审查也需要寻求一些专业的方式;
public class integerValueOf(){
private Integer code=23;
@Test
public void testGetLogsByLcrErrorCodeInlast() throws Exception{
assertEquals(new Integer(code), Integer.valueOf(code));
}
}
解决方案
您是否对 JRE 中的所有其他 API 进行单元测试?不?那你为什么要对 Integer.valueOf(...) 进行单元测试呢?
您现有的单元测试getLogsByLcrErrorCodeInLast
应该涵盖整数实例化的变化。例如,您对不同的值进行了测试,code
并检查您是否获得了预期params
的client.queryForList(...)
.
如果您没有测试,那么您需要在更改代码之前编写它们。
编辑:我之前什至没有注意到它,但是您的生产代码将字符串转换为整数,而您建议的单元测试将整数转换为整数。您的想法从根本上是有缺陷的,因为它没有测试您在生产中执行的代码。它允许像这样的错误通过带有绿色标志的测试。
推荐阅读
- php - 它没有在 RecyclerView 中显示数据库的记录。PHP 代码没问题,他们完美地创建了 json
- vuetify.js - 更改函数名称时,v-autocomplete 不会触发 search-input.sync
- python - 这个使用带有两个参数的 lambda 函数映射的 Spark RDD 有什么问题?
- python - 如何从滚动文本小部件中获取文本?
- html - 如何在悬停时向右移动箭头?
- angular - RXJS 错误类型错误:“this._subscribe 不是函数”
- javascript - 关于过滤 html 元素中的文本的 JavaScript 问题
- php - php - 从 ftp 服务器下载大文件并限制下载速度
- module - jq中调用自定义模块的格式是什么?
- javascript - 第二个 $.ajax 调用被跳过