Python 测试框架基础


1. 导入测试对象
2. 导入单元测试框架:unittest
3. 创建继承自unittest.TestCase类的测试类,类中必须包含三个方法:初始化、测试、结束
  初始化、结束的方法名必须是setUp、tearDown,TestCase类中包含的。
  测试方法中,细节测试步骤,可使用asserEqual对比实际结果和期望结果,同时可在其中定义失败时,提示内容,如asserEqual(c1,5,'与期望结果不符')



 1 #coding=utf-8
 2 from count import Count
 3 #单元测试框架unittest
 4 import unittest
 5 class TestAdd(unittest.TestCase):#继承unittest中的TestCase类
 6     #1>测试准备工作,初始化
 7     def setUp(self):
 8         print "test start"
 9     #2>正式测试
10     def testAdd(self):
11         c1=Count(2,3)
12         #断言函数
13         self.assertEqual(c1.add(),5)
14         # 可以在参数后添加错误描述,asserEqual(c1,6,'结果同预期不符')
15     #3>结束工作
16     def tearDown(self):
17         print "test end"

 

断言语法            解释
assertEqual(a, b)    判断a==b
assertNotEqual(a, b) 判断a!=b
assertTrue(x)      bool(x) is True
assertFalse(x)      bool(x) is False
assertIs(a, b)      a is b
assertIsNot(a, b)    a is not b
assertIsNone(x)   x is None
assertIsNotNone(x)   x is not None
assertIn(a, b)    a in b
assertNotIn(a, b)    a not in b
assertIsInstance(a, b) isinstance(a, b)
assertNotIsInstance(a, b) not isinstance(a, b)


实际测试中,常常有多条测试case,通常采用测试集来执行。
测试类的定义与上方大致相同,
然后需要定义测试集,继承自unittest.TestSutie,
然后向测试集中添加测试类中定义的测试case
测试集的执行需要虚拟执行者,定义如runner=unittest.TextTestRunner()
最后让执行者执行测试集就好:runner.run(suite)
 1 #coding=utf-8
 2 import sys
 3 sys.path.append('.\\practice')
 4 from count import Count
 5 import unittest
 6 class testCount(unittest.TestCase):
 7     def setUp(self):
 8         print 'test start'
 9     def testadd(self):
10         c1 = Count(2,3).add()
11         self.assertEqual(c1,5)
12     def testsub(self):
13         c2 = Count(3,3).sub()
14         self.assertEqual(c2,1)
15     def tearDown(self):
16         print 'test complete'
17 suite = unittest.TestSuite()
18 suite.addTest(testCount('testadd'))
19 suite.addTest(testCount('testsub'))
20 runner = unittest.TextTestRunner()
21 runner.run(suite)



posted @ 2017-10-25 18:43  闪耀的学士帽  阅读(326)  评论(0编辑  收藏  举报