遗留代码测试指南
1. 测试准备
在处理RSpec测试和一批现有的Minitest测试时添加代码覆盖率。如果还没有工厂工具,建议添加一个。为遗留应用编写测试可能需要创建完整的相关对象链,使用工厂工具一次性创建关联可以节省大量时间。
不过,也有例外情况:
- 原开发者选择的工具不适合支持你所需的测试负载。
- 现有测试毫无用处,最好尽快删除并重新开始,此时你可以选择任何想要的工具。
2. 依赖移除
依赖是遗留代码测试中最具挑战性的问题。良好的测试驱动开发(TDD)代码的最大优点之一是,测试会迫使代码的各个部分尽可能相互独立。而没有测试的遗留代码往往高度相互依赖,这在多个方面增加了添加测试的难度,例如:
- 测试单个方法可能需要创建多个对象。
- 如果一个功能单元难以访问或包含在一个长达300行的方法中,就很难将测试限制在该真正的功能单元上。
3. 保持代码分离
将新代码与遗留代码分离是避免依赖的简单方法。尽可能在新方法或新类中编写新代码,仅从现有的遗留代码中调用这些新代码。理论上,这样可以让新代码不受束缚,从而可以通过TDD编写。
例如,有一个来自社交网络站点Flitter的混乱方法:
class Flit
def process_flit
if text =~ /##/
flit.text = "testing: remove this code after 3/10/10"
end
if text.ends_with?("%fb%")
超级会员免费看
订阅专栏 解锁全文
922

被折叠的 条评论
为什么被折叠?



