版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ManyPeng/article/details/78059274
unittest是python中的单元测试模块,类似于java中的junit包,下面就简单介绍一下这个模块的使用方法
首先定义一个计算器类:calculator.py,其中有一个加法方法add
class Calculator:
def __init__(self, a, b):
self.a = int(a)
self.b = int(b)
def add(self):
return self.a + self.b
接下来我们编写另外一个文件(单元测试代码与被测试代码分离开):testadd.py
from calculator import Calculator
import unittest
class TestAdd(unittest.TestCase):
def setUp(self):
print "test case start"
def tearDown(self):
print "test case end"
def test_add(self):
s = Calculator(1, 2)
self.assertEqual(s.add(), 3)
def test_add2(self):
s = Calculator(10, 20)
self.assertEqual(s.add(), 30)
if __name__ == '__main__':
unittest.main()
执行上述文件就会自动运行TestAdd类中的test_add和test_add2方法,在Pycharm中执行的结果如下:
可以看到test case start和test case end分别被打印了两次,这是由于在每个测试用例执行前,都会调用一次setUp方法用于初始化测试环境以及前置工作,每次测试用例执行后,自动调用tearDown方法恢复测试环境以及其他垃圾回收等工作。在本例中,在执行test_add和test_add2前后分别执行了这两个方法,所以会有上图所示的结果。
Pycharm自动识别出这是一个单元测试的程序,结果中显示OK,ALL 2 tests passed,表示有两个测试用例,且都通过。如果有不通过的测试用例,会有红色展示。