python单元测试框架unittest学习笔记四--断言

1、断言

什么是断言?断言是让程序来判断测试用例执行结果是否符合预期

2、unittest的断言,常见的断言方法:

序号断言方法断言描述
1 assertEqual(arg1, arg2, msg=None) 验证arg1=arg2,不等则fail
2 assertNotEqual(arg1, arg2, msg=None) 验证arg1 != arg2, 相等则fail
3 assertTrue(expr, msg=None) 验证expr是true,如果为false,则fail
4 assertFalse(expr,msg=None) 验证expr是false,如果为true,则fail
5 assertIs(arg1, arg2, msg=None) 验证arg1、arg2是同一个对象,不是则fail
6 assertIsNot(arg1, arg2, msg=None) 验证arg1、arg2不是同一个对象,是则fail
7 assertIsNone(expr, msg=None) 验证expr是None,不是则fail
8 assertIsNotNone(expr, msg=None) 验证expr不是None,是则fail
9 assertIn(arg1, arg2, msg=None) 验证arg1是arg2的子串,不是则fail
10 assertNotIn(arg1, arg2, msg=None) 验证arg1不是arg2的子串,是则fail
11 assertIsInstance(obj, cls, msg=None) 验证obj是cls的实例,不是则fail
12 assertNotIsInstance(obj, cls, msg=None) 验证obj不是cls的实例,是则fail

3、示例 

assertequal(参数1,参数2)

如果参数1,参数2的值相等,断言成功,否则断失败

两个参数,有一个存放实际结果,有一个存放预期结果

assertIn(参数1,参数2)

如果参数1 在参数2中,断言通过,否则断言失败

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 # Author:Richard_Kong
 4 """
 5 unitest的基本原理:
 6     unitest是python自带的测试框架
 7     unitest 是python的标准测试库
 8 四大组件:
 9     testcase:测试用例,方法命名基于test_开头,测试用例自行排序执行,排序规则A-Z,0-9
10     testfixture: 设置添置条件 setup ,后置条件 teardown,每个测试用例方法执行前后都要执行者两个方法
11     testsuit:测试套件,批量执行用例集,套件运行需要结合运行器 htmltestrunner/testtestrunner
12     test runner :运行器,通过test的run方法去调用执行测试用例集
13 unitest的语法规则:
14 用import unitest导入unitest模块
15 定义一个集成unittest.TestCase的测试用例类,如class XXX(unitest.TestCase)
16 即如果定义了则会在每个测试case执行前先执行setup方法,执行完毕后执行teardown方法
17 用例名 必须以test开头,否则unitest不能识别
18 一个测试用例应该只测试一个方面,测试的目的和测试内容应该很明确,主要是调用seertEqual\assertRaises等断言方法来
19 判断程序执行结果和预期值是否相符合
20 调用unnitest.main()启动测试
21 """
22 import unittest
23 
24 def sum(a,b):
25     return a+b
26 
27 
28 def setUpModule():
29     print("setUpModule 函数被调用")
30 
31 
32 def tearDownModule():
33     print("tearDownModule函数被调用")
34 
35 
36 class test01(unittest.TestCase):
37     @classmethod
38     def setUpClass(cls) -> None:
39         print("类方法setUpClass 被调用了")
40     @classmethod
41     def tearDownClass(cls) -> None:
42         print("类方法 tearDown 被调用了")
43 
44     def setUp(self):
45         print("befor test the setUp function 被调用了")
46 
47     def tearDown(self):
48         print("after test the teardown function 被调用了")
49 
50     def test_01(self):
51         print("in function test 01")
52 
53     def test_02(self):
54         print("in function test 02")
55 
56     def test_03(self):
57         print(sum(1,8))
58 
59     def test_04(self):
60         num = sum(6,9)
61         self.assertEqual(num,12)
62 
63 
64 
65     # def test_05(self):
66     #     print(sum("aaa",9))
67 
68 
69 if __name__ == '__main__':
70     unittest.main()

 

 

posted @ 2021-07-29 17:54  GalaxyStar  阅读(129)  评论(0编辑  收藏  举报