通过测试驱动代码
在 Ruby 编程中,测试驱动开发(TDD)常被视为编程成功的“秘诀” 。然而,让人们相信编写往往比实现代码更长的测试,实际上能减少项目总耗时并提高整体效率,并非易事。
TDD 的好处
在实际工作中,TDD 的诸多好处是真实存在的。通过编写测试,可以记录软件的预期行为,同时验证代码是否满足需求,从而使代码质量更高。自动化测试能确保在定位并修复 bug 后,不会在不知情的情况下再次出现。而且,由于测试是自动化的,将代码交给他人时,能机械地断言预期结果,这比手写规范更有效。
其实,自动化测试与我们在发现它之前所做的事情并无本质区别。例如,使用条件打印语句来缩小 bug 范围,就是一种原始的自动化测试形式:
if foo != "blah"
puts "I expected 'blah' but foo contains #{foo}"
end
如果曾编写示例来验证早期版本代码中存在但后期版本中不存在的 bug,那么所做的与 TDD 编写的内容相差不大。唯一的区别是,一次性示例无法充分考虑与其他模块集成时可能出现的问题,而单元测试框架能很好地处理这个问题。
很多人虽然知道测试的长期好处,但通常先编写代码,再编写测试,而且编写测试耗时较长,因为难以确定代码的行为。最终,测试成了必要之恶,人们虽感激它像安全网,但除了出问题时,更愿意专注于编写代码。然而,熟练的 Ruby 开发者会告诉你,测试虽难,但确实能让软件开发工作更轻松。
测试框架简介
Ruby 的标准库中提供了一个单元测试框架
超级会员免费看
订阅专栏 解锁全文
2382

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



