1.什么是unnitest?
python的一个库;一个类继承了Unittest了以后便是一个测试用例,而class中的方法 (以test名称开头的方法),会在 TestLoaderd的时候被加载到TestCase中并生成对应实例,然后如果被加载在TestSuite中也是不变的实例
优点:提供用例组织与执行方法;提供比较方法;提供丰富的日志、清晰的报告
2.unnitest的结构组成
unnittest可以由5部分构成:
1)testcase:测试用例
2) testsuite: 可以打包testcase的嵌套工具,将每个类型的单元测试归类等,PS:TestSuite可以嵌套TestSuite。
3) testfixture:TestFixture则是基于测试用例的环境搭建与销毁
4) testrunner:其loadTestsFrom方法搜寻TestCase并加载到TestSuite中
5)testreport:输出的测试报告
3.unnitest的实践
创建一个类 定义方法
def add(a,b):
return a+b;
def minus(a,b):
return a-b;
def multi(a,b):
return a*b;
def divide(a,b):
return a/b
调用unittest
import unittest
from mathfunc import *
class TestMathFunc(unittest.TestCase):
"""docstring for TestMathFunc"""
def Test_add(self):
self.assertEqual(3,add(1,2))
self.assertNotEqual(3,add(2,2))
def Test_minus(self):
self.assertEqual(1,minus(3,2))
def Test_divide(self):
self.assertEqual(2,divide(6,3))
self.assertEqual(4,divide(5,2))
if __name__=="__main__":
suite = unittest.TestSuite()
tests=[TestMathFunc("Test_add"),TestMathFunc("Test_minus"),TestMathFunc("Test_divide")]
suite.addTests(tests)#将测试用例加入测试集
runner=unittest.TextTestRunner(verbosity=2)
runner.run(suite)#运行测试集