演化架构与紧急设计: 测试驱动设计,第1部分 - 编程入门网
atic boolean isPerfect(int number) {
// get factors
List<Integer> factors = new ArrayList<Integer>();
factors.add(1);
factors.add(number);
for (int i = 2; i < number; i++)
if (number % i == 0)
factors.add(i);
// sum factors
int sum = 0;
for (int n : factors)
sum += n;
// decide if it''s perfect
return sum - number == number;
}
}
演化架构与紧急设计: 测试驱动设计,第1部分(3)时间:2011-05-18 IBM Neal Ford这并不是特别好的代码,但是它完成了工作。首先把所有因子创建为一张动态 列表(ArrayList)。我把 1 和目标数字添加到列表中(我在遵守上面给出的公 式,并且所有因子列表都包括 1 和该数字本身)。然后,我迭代可能的因子直到 该数字本身,逐个检查以查看它是不是一个因子。如果是,我将把它添加到列表 中。接下来,我将把所有因子加起来,并最终编写上面所示的公式的 Java 版本 以确定是否为完全数。 现在,我需要一个后测试的单元测试以确定它是否可以工作。我至少需要两个 测试:一个测试用于查看是否正确报告了完全数,另一个测试用于检查我没有得 到误判断(false positives)。单元测试位于清单 2 中: 清单 2. PerfectNumberFinder 的单元测试
演化架构与紧急设计: 测试驱动设计,第1部分(4)时间:2011-05-18 IBM Neal Ford测试名称中的 “_” 是怎么回事? 在编写单元测试时在方法名称中使用下划线是我的一个编程怪癖。当然,Java 标准中规定方法名称可以是大小写混合的。但是我一直保持测试方法名称不同于 普通方法名称。测试方法名称应当指出正在测试的是什么方法,因此这些名称是 很长的描述性名称,在测试失败时,您就知 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |