python使用unittest进行单元测试

文章目录

通过一种规范的测试方法,可以帮助我们在修改程序后能够快速的检测一些bug,使用unittest库的方法如下:

示例程序

py 复制代码
import unittest


class Demo01(unittest.TestCase):
    @classmethod
    def setUpClass(self) -> None:
        print("执行测试用例 - 整体初始化 - setUpClass")

    def setUp(self) -> None:  # 测试用例方法执行前的操作
        print('开始执行测试用例 - setUp')

    def tearDown(self) -> None:  # 测试用例方法执行前的操作
        print('结束执行测试用例 - tearDown')

    @classmethod
    def tearDownClass(cls) -> None:  # 测试用例方法执行后的操作
        print("执行测试用例 - 整体结束 - tearDownClass")

    def test_01(self):  # 测试用例
        print("测试用例1")
        self.assertEqual(1, 1)  # 测试断言

    def test_02(self):  # 测试用例
        print("测试用例2")
        self.assertEqual(2, 2)

    def test_03(self):  # 测试用例
        print("测试用例3")
        self.assertEqual(1, 2)


if __name__ == '__main__':
    unittest.main()

执行结果如下:

text 复制代码
执行测试用例 - 整体初始化 - setUpClass
开始执行测试用例 - setUp
测试用例1
结束执行测试用例 - tearDown
开始执行测试用例 - setUp
测试用例2
结束执行测试用例 - tearDown
开始执行测试用例 - setUp
测试用例3
结束执行测试用例 - tearDown


Ran 3 tests in 0.010s

FAILED (failures=1)


2 != 1

Expected :1
Actual   :2

.........

执行测试用例 - 整体结束 - tearDownClass

在执行测试用例的过程中:

  1. 在执行全部用例前会执行setUpClass,全部用例执行完成后会执行tearDownClass
  2. 每个用例在执行前会执行setUp,用例执行后会执行tearDown
  3. 每个需要执行的用例前都有一个前缀test,根据包含前缀的函数名称(比如testxxxx),就会被认定为是测试用例的一部分

更多assert方法

断言方法 检查条件
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
assertlsInstance(a, b) isinstance(a, b)
assertNotIsInstance(a, b) not isinstance(a, b)

更多assert的方法请参考:https://docs.python.org/zh-cn/3/library/unittest.html#unittest.TestCase.assertEqual

相关推荐
A 计算机毕业设计-小途5 分钟前
大四零基础用Vue+ElementUI一周做完化妆品推荐系统?
java·大数据·hadoop·python·spark·毕业设计·毕设
念念01074 小时前
数学建模竞赛中评价类相关模型
python·数学建模·因子分析·topsis
云天徽上4 小时前
【数据可视化-94】2025 亚洲杯总决赛数据可视化分析:澳大利亚队 vs 中国队
python·信息可视化·数据挖掘·数据分析·数据可视化·pyecharts
☺����4 小时前
实现自己的AI视频监控系统-第一章-视频拉流与解码2
开发语言·人工智能·python·音视频
王者鳜錸5 小时前
PYTHON让繁琐的工作自动化-函数
开发语言·python·自动化
xiao助阵6 小时前
python实现梅尔频率倒谱系数(MFCC) 除了傅里叶变换和离散余弦变换
开发语言·python
麻辣清汤7 小时前
结合BI多维度异常分析(日期-> 商家/渠道->日期(商家/渠道))
数据库·python·sql·finebi
钢铁男儿7 小时前
Python 正则表达式(正则表达式和Python 语言)
python·mysql·正则表达式
钢铁男儿8 小时前
Python 正则表达式实战:解析系统登录与进程信息
开发语言·python·正则表达式
前端小趴菜058 小时前
python - range
python