翻译:编写可测试的代码
在编写单元测试代码的过程中,我们时常会发现某些类或者方法不可测或者不易测,也就是通常所说的代码可测性比较差。当出现这种情况的时候往往也意味着我们的代码存在着问题。在Guide to Writing Testable Code这篇文章中作者列举了多种影响代码可测性的情况,当出现以下问题的时候我们需要及时地对我们的代码加以调整。以下就是对Guide to Writing Testable Code的翻译。
构造函数做了实际的工作
- 在构造函数或字段声明的时候使用了new 关键字
- 在构造函数或字段声明的时候使用了静态方法
- 在构造函数中做了字段赋值以外的事情
- 在构造函数完成以后,对象还不能完全初始化(警惕initialize方法)
- 在构造函数中存在流程控制的语句(条件语句、循环语句)
- 在构造函数中存在复杂对象关系构造
- 使用了初始代码块
跟合作对象耦合太深
- 传过来的对象不直接使用,而只是用来获取其他的对象
- 对象方法调用的层次不止一层。
- 代码中存在context, environment, principal, container,或 manager之类可以的对象名称
容易被破坏的全局状态和单例模式
- 使用了单例模式
- 使用了静态字段或静态方法
- 使用了静态代码块
- 使用了服务定位器模式
类承担了太多的职责
- 总结这个类的功能时需要用上“和”、“以及”这样的词汇。
- 新成员阅读和理解这个类存在困难
- 类中的某些字段只在几个特定的方法中被用到了
- 这个类存在只对方法参数操作的静态方法。
参考资料
分类: 测试驱动
