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` 语句来断言实际结果与期望结果相等。

通过则:

不通过则:

相关推荐
A000—ic测试座(陈佳鑫)33 分钟前
市场热门的电池管理芯片测试座厂家芯片检测利器
测试用例
叩码以求索42 分钟前
浅谈:前序遍历反转法求解N叉树的后序遍历
算法
lancyu1 小时前
关于多轮对话机器人的上下文Token优化和解决方案
人工智能·python·深度学习·机器学习·chatgpt·机器人·prompt
草莓橙子碗1 小时前
Claude 使用指南
开发语言·python
工具分享2 小时前
陪跑跟品爆单AI选品助手,高效跟品会赔本吗?
人工智能·python
COOLMO研究AI2 小时前
Python 如何实现 AI API 的提示词(Prompt)版本管理与热更新
人工智能·python·prompt
老郑聊AI业财智造2 小时前
Transformer 技术架构与源码分析
人工智能·python·深度学习·语言模型·架构·transformer·软件工程
北风toto2 小时前
中缀、前缀、后缀表达式
算法·软件设计师
程序员三藏2 小时前
自动化测试用例编写详解
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
听取WA声一片(无恶意)2 小时前
CSP-J/CSP-S 深度优先搜索(DFS)完全讲义
c++·算法·深度优先