15.5. 小结

优质
小牛编辑
123浏览
2023-12-01

15.5. 小结

单元测试是一个强大的概念,使用得当的话既可以减少维护成本又可以增加长期项目的灵活性。 同样重要的是要意识到单元测试并不是“灵丹妙药”,也不是“银弹”。 编写好的测试用例很困难,保持其更新更需要磨练(特别是当顾客对修复严重的 Bug 大呼小叫之时)。 单元测试不是其它形式测试的替代品,比如说功能性测试、集成测试以及可用性测试。但它切实可行且功效明显,一旦相识,你会反问为什么以往没有应用它。

这一章涵盖了很多内容,有很多都不是 Python 所特有的。 很多语言都有单元测试框架,都要求你理解相同的基本概念:

  • 测试用例的设计方针是目的单一、可以自动运行、互不干扰。
  • 在被测试代码编写 之前 编写测试用例。
  • 编写测试 有效输入的测试用例 并检查正确的结果。
  • 编写测试 无效输入的测试用例 并检查正确的失败。
  • 为 描述 Bug 或 反映新需求 而编写和升级测试用例。
  • 为了改进性能、可伸缩性、可读性、可维护性和任何缺少的特性而无情地重构。

另外,你应该能够自如地做到如下 Python 的特有工作:

  • 继承 unittest.TestCase 生成子类并为每个单独的测试用例编写方法。
  • 使用 assertEqual 检查已知结果的返回。
  • 使用 assertRaises 检查函数是否引发已知异常。
  • 在 if __name__ 子句中调用 unittest.main() 来一次性运行所有测试用例。
  • 以 详细(verbose) 或者 普通(regular) 模式运行单元测试

进一步阅读

  • XProgramming.com 有多种语言的 单元测试框架 的下载链接。