@pytest.mark.parametrize** 参数化测试函数

如何参数化夹具和测试功能

@pytest.mark.parametrize 参数化测试函数

内置的pytest.mark.parametrize装饰器可以对测试函数的参数进行参数化。以下是测试函数的典型示例,该函数实现检索特定输入是否会产生预期输出

import pytest


@pytest.mark.parametrize("test_input,expected", [("3+5", 8), ("2+4", 6), ("6*9", 42)])
def test_eval(test_input, expected):
    assert eval(test_input) == expected

这里,@parametrize装饰器定义了三个不同的(test_input,expected) 元组,以便test_eval函数将依次使用它们运行三次

下面是一个具体的例子,演示如何使用 @pytest.mark.parametrize 来测试一个简单的加法函数:

import pytest  
  
def add_numbers(x, y):  
    return x + y  
  
# 使用 @pytest.mark.parametrize 为测试函数提供多组参数  
@pytest.mark.parametrize("x, y, expected", [  
    (1, 2, 3),  
    (0, 0, 0),  
    (-1, 1, 0),  
    (1.5, 2.5, 4.0)  
])  
def test_add_numbers(x, y, expected):  
    assert add_numbers(x, y) == expected

在这个例子中,test_add_numbers 测试函数会使用四组不同的 (x, y, expected) 参数值来运行。对于每组参数,它都会调用 add_numbers 函数,并检查返回的结果是否等于期望的值 expected

通过使用 @pytest.mark.parametrize,你可以轻松地扩展测试用例以覆盖更多的输入情况,而无需编写大量的重复代码。这使得测试更加高效和可维护。

posted @ 2024-03-18 14:40  乐乐乐乐乐乐樂  阅读(70)  评论(0)    收藏  举报
jQuery火箭图标返回顶部代码