全面理解测试驱动开发(TDD)及其相关测试技术
1. 对TDD命名的质疑与正确认知
有时,人们会质疑TDD(测试驱动开发)的命名,因为他们觉得“测试”这个概念会混淆实际的开发过程。这是由于开发者误解了构建“测试”的真正含义。一般的单元测试工具几乎不会指导开发者如何编写优秀的测试用例。而将测试重新定义为规范和示例,是向开发者引入测试的一个好方法。
所有自动化测试都很难编写。我们有时会忘记编写重要的测试,构建脆弱的测试用例,设定宽松的预期,把解决方案过度复杂化,或者忘记进行重构等等。这并非只是新手会遇到的问题,包括专家在内的所有人都会如此。人们时常会把事情弄得一团糟,但这也是乐趣的一部分。要发现TDD的乐趣,需要一定程度的谦逊,并接受自己大部分时间都无法编写出完美测试套件的事实,因为完美的测试套件确实非常罕见。
如果团队中有测试人员,你可能会认为TDD会侵犯他们的工作,甚至让他们失业。但如果你询问他们的意见,你会发现他们非常希望开发者关注自己工作的质量。通过TDD,开发者可以自行捕捉那些琐碎的逻辑错误,而无需依赖他人的手动测试。这样,测试人员就可以将时间更好地用于测试复杂用例和查找遗漏的需求。
2. 单元测试的最佳实践
2.1 单元测试的特性
以下是一些优秀单元测试应具备的特性:
- 独立性 :每个测试应只测试一件事,并且只调用一个单元。为实现这一目标,有很多技术可供使用。例如,通常(但不总是)会对协作者进行模拟,示例数据应是正确描述测试所需的最小数据集。
- 简短且抽象程度高 :测试描述应简洁明了。测试代码应突出对测试重
超级会员免费看
订阅专栏 解锁全文
669

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



