一、简介
单元测试(又称为模块测试, Unit Testing)是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。在过程化编程中,一个单元就是单个程序、函数、过程等;对于面向对象编程,最小单元就是方法,包括基类(超类)、抽象类、或者派生类(子类)中的方法。
为什么要进行单元测试? 测试除了保证程序的健壮性外,是可以让你重新思考代码的设计的。引用Axb博客的话:
编写单元测试的难易程度能够直接反应出代码的设计水平,能写出单元测试和写不出单元测试之间体现了编程能力上的巨大的鸿沟。无论是什么样的程序员,坚持编写一段时间的单元测试之后,都会明显感受到代码设计能力的巨大提升。
如果发现代码难以构造测试,很有可能就是接口设计不够优雅,或者耦合严重,尝试从测试的角度思考能够让我们更好地设计。单元测试同时也为重构提供了保证,比如我们想优化一个函数内部实现,更换更优的数据结构和算法,只需要重新跑一下测试就可以验证新的实现是否引入了错误或bug。
二、好处
总的来说,单元测试有以下好处:
确保代码质量
改善代码设计,难以测试的代码一般是设计不够简洁的代码。
保证重构不会引入新问题,以函数为单位进行重构的时候,只需要重新跑测试就基本可以保证重构没引入新问题。
三、python测试相关库
unittest,内置库,模仿PyUnit写的,简洁易用,缺点是比较繁琐。
nose,测试发现,发现并运行测试。
pytest,笔者目前喜欢用这个,写起来很方便,并且很多知名开源项目在用,推荐。
mock, 替换掉网络调用或者 rpc 请求等
以上就是python中单元测试的详解以及测试的优点。学会了的小伙伴也可以看看python单元测试的实用方法。更多Python学习推荐:PyThon学习网教学中心。