演化架构与紧急设计: 测试驱动设计,第1部分 - 编程入门网
assifier1.isFactor(1, 10));
}
}
这项简单测试琐碎得有些愚蠢,这就是我需要的。要编译此测试,您必须有名 为 Classifier1 的类,并且它有 isFactor() 方法。因此我必须先创建类的骨架 结构,然后才可以得到表示测试结果不正确的红条。编写极度琐碎的单元测试可 以先把结构准备就绪,然后才需要开始通过所有有意义的方法考虑问题域。我希 望一次只考虑一件事,而且这使得我可以处理骨架结构,而无需担心正在解决的 问题的细微差别。一旦我可以编译这段代码并且得到表示测试失败的红条,我就 准备好编写代码,如清单 6 所示: 清单 6. 确定因子的方法
好的,这段代码很好而且很简单,并且它可以完成工作。现在我可以转到下一 项最简单的任务:获得数字的因子列表。测试显示在清单 7 中: 清单 7. 下一个测试:数字的因子
演化架构与紧急设计: 测试驱动设计,第1部分(6)时间:2011-05-18 IBM Neal Ford清单 7 显示了我为获得因子编写的最简单测试,因此现在我可以编写使此测 试通过的最简单代码(并在以后将其重构以使其更复杂)。下一个方法显示在清 单 8 中: 清单 8. 简单的 factorsFor() 方法
虽然这个方法可以工作,但是它使我完全停了下来。将 isFactor() 方法变成 静态方法似乎是个好主意,因为它只不过根据其输入返回一些内容。但是,现在 我也已经使 factorsFor() 方法成为了静态方法,意味着我必须将名为 number 的参数传递给两个方法。这段代码将变得非常过程化,这是过分使用静态的副作 用。为了解决此问题,我将重构已有的两个方法,这很简单,因为到目前为止我 只有很少的代码。重构后的 Classifier 类显示在清单 9 中: 清单 9. 改进后的 Classifier 类
我把数字变成是 Classifier2 类中的成员变量,这将允许我避免将其作为参 数传递给一大堆静态方法。 我的分解列表中的下一件事表明我需要找到数字的因子。因此,我的下一个测 试应当检查这一点(如清单 10 中所示): 清单 10. 下一个测试:数字的因子
现在,我将试着实现返回给定参数的因子数组的方法,如清单 11 中所示: 清单 11. getFactors() 方法的第一步
演化架 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |