执行单元测试
目标
1. 回顾UnitTest框架使用
2. 基于UnitTest测试三角形案例
3. 在UnitTest框架中使用数据分离
什么是单元测试执行?
概念:通过单元测试框架对要进行测试代码的实践过程
1. 练习1
1. 通过Python语言编写一个运算的类(Calc),类中包含两个函数:
1) add(self,a,b) 返回a+b之和
2) sub(self,a,c) 返回a-c之差
提示:通过练习1,我们先简单复习下UnitTest框架的使用
1.1 练习1 步骤分析
1. 新建Calc类
2. 在Calc类中新建add函数
3. 在Calc类中新建sub函数
4. 调用对象中方法
代码 :
# 新建Calc类
class Calc():
# 新建add方法,返回a+b
def add(self,a,b):
return a+b
# 新建sub方法,返回a-b
def sub(self,a,b):
return a-b
1.2 练习1 单元测试
1. 导包 UnitTest 、Calc类
2. 新建单元测试类 Test01(集成 unitTest.TestCase)
3. 新建testAdd()函数
1). 导入Calc类中的add函数
2). 添加断言
4. 新建testSub()函数
1). 导入Calc类中的sub函数
2). 添加断言
5. 执行测试
1). unittest.main()
代码:
import unittest
from Unittest.code1 import Calc
class Test_calc(unittest.TestCase):
def setUp(self):
print("setUp")
def tearDown(self):
print("tearDown")
def test_add(self):
result=Calc().add(10,22)
self.assertEqual(result,32)
def test_sub(self):
result=Calc().sub(33,34)
self.assertEqual(result,-1)
if __name__ == '__main__':
unittest.main()
1.3 总结
1. 导包
2. setUp 函数作用
3. tearDown 函数作用
4. 断言
5. 运行测试函数
1.4 问题
1. 练习1我们数据直接写入代码中,如果数量庞大,我们需要频繁改动数据或复制冗余代码进行实现数据测试目的。
2. 做不到数据分离(代码和数据分开),不便维护;
参数化
概念:根据需求动态获取数据并进行赋值的过程
2. 参数化-方式
1. XML格式(1)
3. CSV格式(2)
2. JSON串 (3)
4. TXT文本(4)
提示:括号内为推荐使用优先级,从小到大;1-2为扩展了解,3-4建议重点了解