欢迎访问宙启技术站
智能推送

如何使用parametrize()函数生成多组测试数据

发布时间:2023-12-23 17:45:56

parametrize()函数是pytest测试框架提供的一种参数化测试数据的功能。通过使用parametrize()函数,可以将多组不同的测试数据传递给同一个测试用例,从而方便地进行多组测试。

parametrize()函数的基本用法是在测试用例函数上方使用@pytest.mark.parametrize装饰器,并将参数化的参数以及对应的测试数据传递给该装饰器。

下面是一个具体的例子,以测试一个计算器类Calculator为例,其中有一个加法方法add()需要进行多组测试:

import pytest

class Calculator:
    def add(self, a, b):
        return a + b

@pytest.fixture
def calculator():
    return Calculator()

@pytest.mark.parametrize("a, b, expected", [
    (1, 2, 3),
    (0, 0, 0),
    (-1, 1, 0),
    (10, -5, 5),
])
def test_add(calculator, a, b, expected):
    assert calculator.add(a, b) == expected

在上面的例子中,使用@pytest.mark.parametrize装饰器参数化了test_add()方法的三个参数a、b和expected,并传递了四组不同的测试数据。

每组测试数据由一对小括号表示,其中 个参数是a的值,第二个参数是b的值,第三个参数是期望的结果expected。

在测试用例函数中,可以直接使用这些参数来执行测试,并使用assert断言检查实际计算结果是否与期望结果相等。

当运行该测试文件时,pytest会自动识别到带有@parametrize装饰器的测试用例,并自动生成四个独立的测试用例执行,分别使用不同的测试数据。

以上就是使用parametrize()函数生成多组测试数据的例子。通过利用这个功能,可以方便地进行批量测试,减少代码重复的编写,提高测试效率。