unittest 核心要素
1.TestCase
一个 TestCase 的实例就是一个测试用例什么是测试用例呢? 就是一个完整的测试流程, 包括测试前准备环境的搭建 (setUp), 执行测试代码(run), 以及测试后环境的还原(tearDown) 元测试 (unit test) 的本质也就在这里, 一个测试用例是一个完整的测试单元, 通过运行这个测试单元, 可以对某一个问题进行验证
2.TestSuite
而多个测试用例集合在一起, 就是 TestSuite, 而且 TestSuite 也可以嵌套 TestSuite TestLoader 是用来加载 TestCase 到 TestSuite 中的, 其中有几个 loadTestsFrom__()方法, 就是从各个地方寻找 TestCase, 创建它们的实例, 然后 add 到 TestSuite 中, 再返回一个 TestSuite 实例
3.TextTestRunner
TextTestRunner 是来执行测试用例的, 其中的 run(test)会执行 TestSuite/TestCase 中的 run(result)方法 测试的结果会保存到 TextTestResult 实例中, 包括运行了多少测试用例, 成功了多少, 失败了多少等信息
4.Fixture
而对一个测试用例环境的搭建和销毁, 是一个 fixture
- //calculator.py
- class Math:
- def __init__(self,a,b):
- self.a = int(a)
- self.b = int(b)
- def add(self):
- return self.a + self.b
- def jian(self):
- return self.a - self.b
单元测试
- from calculator import Math
- import unittest
- class TestMath(unittest.TestCase):
- def setUp(self):
- print("Start test")
- def test_add(self):
- j = Math(5,10)
- self.assertEqual(j.add(),15)
- # self.assertEqual(j.add(),12)
- def tearDown(self):
- print("test end")
- if __name__==__main__:
- #构造测试集
- suite = unittest.TestSuite()
- suite.addTest(TestMath("test_add"))
- #执行测试
- runner = unittest.TextTestRunner()
- runner.run(suite)
来源: http://www.bubuko.com/infodetail-2513994.html