我正在处理这个方法,并尝试为它添加一个单元测试。但是,我对结果没有任何想法,所以我尝试使用assertNotNull
验证变量cantidad
以解决不同的条件,但无法继续。
cantidad = mapsCodigoError.getHaspMapCodigos().size();
if (cantidad != 0) {
hashMapCodigos = (HashMap<Totalcodigo, Integer>) mapsCodigoError.getHaspMapCodigos();
Iterator<Entry<Totalcodigo, Integer>> entries = hashMapCodigos.entrySet().iterator();
List<ValorCodigoOrdenado> listaEstatus = new ArrayList<>();
listaEstatus=recuperarError(entries,listaEstatus);
Collections.sort(listaEstatus);
ValorCodigoOrdenado value;
for (int i = 0; i < listaEstatus.size(); i++) {
valor=listaEstatus.get(i);
listaValoresEstatus.add(value);
}
}
1条答案
按热度按时间enxuqcxy1#
可以使用方法进行单元测试的内容:
mapsCodigoError.getHaspMapCodigos().size()
mapsCodigoError.getHaspMapCodigos()
recuperarError(entries,listaEstatus)
在给定巧尽心思构建的entries
时计算正确的结果recuperarError
的结果稍后在该方法中排序listaValoresEstatus
会被listaEstatus
中的值填充我看不出变量是如何“进入”方法的,也看不出以后如何访问它们,但我可以看到代码可以得到一些改进:
hashMapCodigos
可能应该仅为Map<Totalcodigo, Integer>
类型,除非您依赖于仅HashMap
提供的属性或方法。mapsCodigoError.getHaspMapCodigos()
的结果必须被强制类型转换,看起来它应该准确地返回您在此方法中需要的类型?recuperarError
只接受Iterator
作为第一个参数,而不接受Collection
或Set
?除了非常特殊的情况外,有比Iterator
更好的方法来处理集合的所有项目ValorCodigoOrdenado value
应该在for循环中声明,因为之后不需要它。(“最小化可见性”)listaEstatus
的所有值都放入listaValoresEstatus, probably a
中,只需使用listaValoresEstatus.addAll(listaEstatus)'就足够了--不需要循环--除非在循环中发生了一些神奇的装箱/拆箱或值的自动转换,即使这样,“foreach”循环看起来也会更好。value
,但使用了valor
?看起来此代码根本无法编译。