python之单元测试框架—unittest
1|0一. 什么是单元测试?单元测试的对象是什么?
1|11: 什么是单元测试?
按照定义,单元测试就是对单个模块或者单个类或者单个函数进行测试,一般是开发做的,按照阶段分,一般就是单元测试、集成测试、系统测试、验收测试
1|22: 为什么要做单元测试?
1) 单元测试之后,才是集成测试,单个单个的功能模块测试通过之后,才能把单个功能模块集成起来做集成测试,为了从底层发现bug,减少合成后出现的问题
2) 越早发现bug越好,这样可以早点发现问题,不然问题累计到后面,如果做错了就要推倒重来,对于时间和经费来说,是非常浪费的!
3) 对我们测试来说,我们做单元测试是为了执行测试用例
2|0二. 单元测试的语法介绍
2|11: 引入自带的单元测试类: import unittest
创建一个测试类,来测试你要测试的目标对象: class TestMath(unittest.TestCase)
2|22: 引入你要测试的代码模块或者是类名: from class_4_test import add
2|33: 创建单元测试用例来对测试目标进行测试: def test_add(self)
语法:函数用test开头,然后拼接下划线,再加函数名,里面的内容就是创建实例来调用方法
2|44: 引入断言,对测试结果进行判断处理
self.assertEqual(实际结果,期望结果,如果出错出错处理)
self.assertEqual(result_add, 6, "答案不等于6,所以答案是错误的!")
2|55: 引入异常判断,对测试用例进行异常判断处理: try...except
错误基类:AssertionError
2|66: 引入测试集,方便批量进行单元测试
完整的单元测试很少只执行一个测试用例,开发人员通常需要编写多个测试用例才能对某一软件功能进行比较完全的测试,这些相关的测试用例称为一个测试用例集,用TestSuite类来表示,用到的是TestSuite(),用addTest执行测试集,用到的是TextTestRunner(),用runner.run(suite)
2|77: 单元测试参数化(少量数据,十组以内)
安装:pip install parameterized #通过pip安装,记得先装好pip和setuptools这两个,才能用pip命令
使用:引入parameterized
from parameterized import parameterized
使用范例:
有关parameterized详细内容请查看https://github.com/wolever/parameterized
2|88: 测试报告,引入htmlreport模板
1. 单元测试后生成测试报告。前提条件,把测试报告模板HTMLTestRunner.py放在python Lib目录下
2|99: 举例
3|0三. 代码部分
3|11: 我们先定义一个需要测试的目标类Math,它的文件名是mathfunc.py
3|22: 创建测试类,它的文件名是test_mathfunc.py
3|33: 创建测试集,它的文件名为test_suite.py
3|44: 参数化@parameterized,传递一组数据,我们修改之前的test_mathfunc.py文件
3|55: 引入htmlreport模板,生成测试报告
__EOF__

本文链接:https://www.cnblogs.com/my_captain/p/9011785.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?