title: 单元测试 category: page slug: unit-testing sortorder: 0802 toc: False sidebartitle: 单元测试 meta: 单元测试用于测试从程序中隔离出来的单个函数。快来 Full Stack Python 学习更多关于单元测试的知识吧。 translators: blog.chriscabin.com updated: 2016-07-05 19:00

单元测试

单元测试是一种用于判断从更大的代码库分离出来的单个函数正确性的方法。 单元测试的思想是,如果一个应用程序中所有分离出来的原子单元都能按照预期工作, 那么当把它们集成到一起后,能按照预期工作将会更加容易。

单元测试缘何重要?

单元测试只是一种 测试 形式,它会和其他测试方法配合在一起,用于查找正在开发的软件中存在的 bug。当把多个函数和类放在一块后,通常来说,如果多个 bug 同时出现的话,将很难定位问题的根源。单元测试能帮助消除尽可能多的独立 bug,从而当一个程序作为一个整体运行时,其各组成部分将越有可能正确运行。那么,一旦出现了问题, 它们通常都可以被追溯为:是因不同的组成部分未能正确衔接而产生的非预期结果。

单元测试工具

Python 中有许多用于创建测试的工具。有一些测试工具,例如 pytest,是用来替代内置的 unittest 框架的。 其他的一些测试工具,如 nose 等都是用于简化测试的创建工作的扩展程序。需要注意的是,通过编写测试案例来对代码中的多个部分同时进行测试,这些工具也有许多可被用于 集成测试

  • unittest 是专门用于测试 Python 代码的内置标准库工具。

  • pytest 是一个完整的测试工具,它强调后向兼容性及最少化样板代码量。

  • nose 是一个 unittest 的扩展工具,它使得编写和执行测试案列更加简单。

  • Hypothesis 是一个单元测试生成工具,它会帮助开发人员创建用于检查代码块边边界条件的测试案例。 学习使用 Hypothesis 的最好途径就是去认真阅读这篇写得非常好的 快速入门

  • testify 是一个旨在替代 unittest+nose 组合的测试框架。 遗憾的是,testify 背后的开发团队正在转向 pytest,所以并不推荐你在新的项目中使用 testify。

单元测试相关的资源