Ruby 编程中的测试与方法构建
1. 测试的重要性
在软件开发中,测试是确保代码正常工作的关键环节。就像 Document.new 能正常返回结果且不抛出异常一样,我们应该重视代码测试。如果条件允许,要编写高质量的测试;若条件有限,也要编写基本可用的测试;即便情况再差,至少编写一些能对代码进行简单测试的用例。
关于编写测试的时机,很多 Ruby 程序员遵循测试优先的编程理念。他们认为,在添加新功能之前,必须先编写测试,先让测试失败,再编写代码使测试通过,如此反复,直到完成一个功能完善且有完整测试套件的程序。这种理念有其合理性,因为先有测试会促使我们编写可测试的程序。
不过,测试优先并非适用于所有情况。有时,先编写代码再添加测试会更高效。关键在于,软件和对应的测试都完成后,整个开发过程才算结束。无论何时编写测试,最终都要确保测试的存在。
2. 构建短而聚焦的方法
软件开发往往归结为逐个编写方法。一个重要但常被忽视的问题是,如何将类拆分为多个方法。Ruby 程序员倾向于编写非常短的方法,这些方法专注于完成一件事并把它做好。将代码拆分为多个短的、单一用途的方法,不仅能发挥 Ruby 语言的优势,还能提高整个应用的可测试性。
2.1 压缩规范示例
假设要实现一个文本压缩算法,将文本字符串转换为两个数组进行存储。第一个数组包含原文中的所有唯一单词,第二个数组包含每个单词在原文中的整数索引。
以下是实现该功能的代码逐步优化过程:
初始版本 :
超级会员免费看
订阅专栏 解锁全文

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



