一、什么是单元测试?
单元测试就是测试的对象是程序中的最小单元的测试,程序的最小单元可以是一个函数,一个类,也可以是函数的组合,类的组合。
单元测试一般由软件开发者,而不是独立的工程师完成。单元测试属于自动化测试。
二、什么是框架?
框架,就是一个架子,这个架子能够完成领域内基础的、重要的功能,基于这个已有的架子,可以把重心放在面向业务的开发上。
三、主流框架
3.1 unittest
unittest是python标准库中自带的单元测试框架,unittest可以通过类(class)的方式,将测试用例组织在一起。
eg:
import unittest
class TestStringMethods(unittest,TestCase):
def test_upper(self):
self.assertEqual("foo".upper(),"FOO")
if__name__=="__main__":
unittest.main()`
3.2 pytest
pytest是python另一个第三方测试库,目的是让单元测试变得更容易,也能扩展到支持应用层面复杂的功能测试。
pytest的特性有:
(1)支持用简单的assert语句实现丰富的断言,无需复杂的self.assert*函数
(2)自动识别测试模块和测试函数
(3)兼容unittest测试集
(4)支持Python3和PyPy3
(5)丰富的插件生态、活跃的社区
eg:
def inc(x):
return x*1
def test_answer():
assert inc(3) == 5
3.3 框架选型
一般,认为pytest入门难度更低。