废话不多说,具体如下:
一、什么是unittest?
unittest模块是python自带的一个单元测试模块,我们可以用来做单元测试。unittest模板包含了如下几个子模块:
- 测试用例:TestCase
- 测试集:TestSuit
- 加载用例:TestLoader
- 执行用例:TextTestRunner
这四个都是unittest模块中的类,整个单元测试的工作模块,就是这几大类。
二、了解了什么是unittest,来编写自己的第一个测试类
eg:
编写一个数学方法类,类里面有加法以及减法两个函数。代码如下所示:
class MathMethod:
def __init__(self, a, b):
self.a = a
self.b = b
def add(self):
return self.a + self.b
def sub(self):
return self.a - self.b
编写了类,就需要对类里面的函数去编写测试用例,来测试自己的代码是否正确,比如,就针对加法来编写测试用例,来测函数是否正常运行,针对加法我们可以从测试角度出发,设计几条用例如下所示:
- 两个正数相加
- 两个负数相加
- 一正一负相加
- 正数与零相加
- 小数点相加
接下来就利用unittest中的TestCase类来编写测试用例了,在正式开始编写测试用例之前,补充一些关于TestCase类以及类函数的用法。
- 要引用TestCase,我们需要引入unittest模块
- 我们引用TestCase是编写一个测试类,所以要新建一个类
- 上面写的5条用例,需要转换成代码,也就是这个测试类里面的函数,函数名都是以test_开头,这样unittest就能识别用到用例,并执行
新建一个test_math_method模块,编写测试用例示范代码如下所示:
# 在写代码之前记得要引入unittest模块以及MathMethod模块
import unittest
from python_unittest import MathMethod
class TestMathMethod(unittest.TestCase):
def test_two_positive(self):
MathMethod(1, 2).add()
def test_two_negative(self):
MathMethod(-1, -2).add()
def test_positive_negative(self):
MathMethod(1, -2).add()
def test_zero_positive(self):
MathMethod(0, 1).add()
def test_two_float(self):
MathMethod(0.1, 0.3).add()
# 编写测试用例在main函数下面
if __name__ == '__main__':
unittest.main()
运行代码之后,结果如下所示:
一共执行了5条用例,且用例都通过了。这就是最简单的编写的测试类,但是写成这样肯定是不够的,我们还需要继续优化,继续去添砖加瓦,让我们的单元测试更加专业。