如何使用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()函数生成多组测试数据的例子。通过利用这个功能,可以方便地进行批量测试,减少代码重复的编写,提高测试效率。
