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

通过则:

不通过则:

相关推荐
娃哈哈_11 分钟前
基于Testng + Playwright的H5自动化巡检工具
测试开发·测试工具·自动化·html5·可用性测试·testng·playwright
封步宇AIGC11 分钟前
量化交易系统开发-实时行情自动化交易-Okex K线数据
人工智能·python·机器学习·数据挖掘
封步宇AIGC13 分钟前
量化交易系统开发-实时行情自动化交易-Okex交易数据
人工智能·python·机器学习·数据挖掘
小爬虫程序猿15 分钟前
如何利用Python解析API返回的数据结构?
数据结构·数据库·python
波点兔18 分钟前
【部署glm4】属性找不到、参数错误问题解决(思路:修改模型包版本)
人工智能·python·机器学习·本地部署大模型·chatglm4
一点媛艺3 小时前
Kotlin函数由易到难
开发语言·python·kotlin
魔道不误砍柴功4 小时前
Java 中如何巧妙应用 Function 让方法复用性更强
java·开发语言·python
pianmian14 小时前
python数据结构基础(7)
数据结构·算法
_.Switch5 小时前
高级Python自动化运维:容器安全与网络策略的深度解析
运维·网络·python·安全·自动化·devops
安冬的码畜日常5 小时前
【玩转 Postman 接口测试与开发2_006】第六章:Postman 测试脚本的创建(中):脚本的位置与执行顺序、AI助手及私有模块的使用
测试工具·postman·测试脚本·postbot·package library