unittest_parameterized批量测试测试用例

python 复制代码
import unittest
from parameterized import parameterized

def add(x, y):
    return x+y

"""
    问题:
        如果有三组数据需要测试?
        [(1,1,2), (1,2,3), (0,3,3)]
"""


def get_data():
    return [(1, 2, 3), (3, 0, 3), (2, 1, 3)]


# 定义测试类 并 继承
class Test01(unittest.TestCase):
    # 定义测试方法 注意:以test字母开头
    @parameterized.expand(get_data())
    def test_add(self, a, b, expect):
        # 调用 要是的函数
        result = add(a, b)
        assert result == expect

首先,代码定义了一个简单的 `add` 函数,它接受两个参数 `x` 和 `y`,并返回它们的和。

然后,代码定义了一个 `get_data` 函数,它返回一个包含三组数据的列表。每组数据都是一个元组,包含三个元素:两个要加的数字和一个期望的结果。

接下来,代码导入了 `unittest` 和 `parameterized`。`parameterized` 库允许您为测试方法提供多个参数,从而可以用同一套测试代码测试不同的输入数据。

`Test01` 类继承自 `unittest.TestCase`,这意味着它是一个测试类。在这个类中,`test_add` 方法是一个测试方法,它使用 `@parameterized.expand` 装饰器来扩展测试用例。`@parameterized.expand(get_data())` 表示 `test_add` 方法将使用 `get_data()` 函数返回的每组数据作为参数来调用。

`test_add` 方法接受三个参数:`a`、`b` 和 `expect`。这些参数分别对应于 `get_data` 函数返回的每组数据中的两个加数和期望的结果。在测试方法中,调用 `add(a, b)` 来获取实际的结果,并使用 `assert` 语句来断言实际结果与期望结果相等。

通过则:

不通过则:

相关推荐
爱睡懒觉的焦糖玛奇朵7 小时前
【从视频到数据集:焦糖玛奇朵的魔法工具使用说明】
人工智能·python·深度学习·学习·算法·yolo·音视频
Runawayliquor7 小时前
opbase:CANN 所有算子的公共地基
大数据·数据库·人工智能·算法
徐安安ye7 小时前
FlashAttention 为什么对序列长度这么“敏感”?
人工智能·算法
yangshicong8 小时前
第11章:结构化输出与数据提取 —— 让 AI 直接返回你想要的数据格式
数据库·人工智能·redis·python·langchain·ai编程
言之。8 小时前
【Python】免费的中文 AI 配音方案
开发语言·人工智能·python
Warson_L8 小时前
python dict key详解
python
天天进步20158 小时前
Python全栈项目:从零手操一个高性能 API 网关
开发语言·python
黎阳之光9 小时前
黎阳之光:以视频孪生重构智能监盘,为燃机打造新一代智慧电厂大脑
大数据·人工智能·算法·安全·数字孪生
汽车仪器仪表相关领域9 小时前
Kvaser Hybrid Pro 2xCAN/LIN 双通道可编程CAN/LIN通讯接口:一机双模可编程,汽车车身混合总线测试专用设备
人工智能·功能测试·安全·fpga开发·汽车·压力测试
绝知此事9 小时前
【算法突围 02】树形结构与数据库索引:树形结构与数据库索引:从 BST 到 B+ 树的演化与 MySQL 优化
数据库·mysql·算法·面试·b+树