重构-构筑测试体系
4.1 自测试代码的价值
编写代码其实只占非常小的一部分。有些时间用来决定下一步干什么,另外一些时间花在设计上,最多的时间则是用来调试。
类应该包含它们自己的测试代码。
确保所有测试都完全自动化,让它们检查自己的测试结果。
一套测试就是一个强大的bug侦测器,能够大大缩减查找bug所需要的时间。
编写测试代码其实就是在问自己:添加这个功能需要做些什么。编写测试代码还能使你把注意力集中于接口而非实现。
预先写好的测试代码也为你的工作安上一个明确的结束标志:一旦测试代码正常运行,工作就可以结束了。
4.2 Junit 测试框架
频繁地运行测试,每次编译请把测试也考虑进去-每天至少执行每个测试一次。
单元测试和功能测试。
当你收到bug报告,请先写一个单元测试来暴露bug。
4.3 添加更多测试
编写未至完善的测试并实际运行,好过对完美测试的无尽等待。
考虑可能出错的边界条件,把测试火力集中在那儿。
当事情被认为应该会出错时,别忘了检查是否抛出了预期的异常。
不要因为测试无法捕捉所有bug就不写测试,因为测试的确可以捕捉大多数bug。
参考资料:
《重构-改善既有代码的设计》
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具