1. 概述
经常写一些测试用的代码,但又没去用正式的测试框架,总觉得这“测试代码”别扭,所以今天捡起Python的单元测试框架。
本文先给个小例子,后续再系统介绍每一个专题。
2. 示例代码
import unittest
def myadd(x, y):
return x + y
class TestMyAdd(unittest.TestCase):
def setUp(self):
pass
def test_add_two_int(self):
a = 1
b = 2
expect = 3
self.assertEqual(myadd(a, b), expect)
def test_add_two_list(self):
a = [1, 2, 3]
b = [4, 5]
expect = [1, 2, 3, 4, 5]
self.assertEqual(myadd(a, b), expect, "List add error.")
if __name__ == '__main__':
unittest.main()
3. 运行效果
D:\examples\python\pyunit>python the_unit_test.py
..
----------------------------------------------------------------------
Ran 2 tests in 0.001s
OK
D:\examples\python\pyunit>
4. Python单元测试框架
通过上面的示例测试代码可以看到,python的UnitTest和junit、gtest等具有非常一致的使用习惯。借助python的unittest模块,我们可以及时为(新增的)python代码增加测试代码。
unittest基本的使用方法是:
- 定义TestCase的一个子类;
- 在setUp()中定义预置条件;
- 定义一系列的test_xyz()方法,此即测试用例;
- 调用unittest.main()执行测试用例。