如何将函数作为pytest参数化夹具传递?

问题描述 投票:0回答:1

如何在Python中将函数作为参数传递?我想做类似下面的代码。

我的目标是传递不同的参数来测试单个函数。

def __internal_function(inputs):
    a,b,c,d = inputs

    new_value_of_b = copy.deepcopy(b)

    name = b['name']
    age = b['age']
    weight = b['weight']
    height = b['height']

    new_value_of_b2 = [name, age, weight, height]
    new_value_of_b3= new_value_of_b['weight']['unit'] = 'cm'
    del new_value_of_b['age']
    return new_value_of_b,new_value_of_b2,new_value_of_b3


@pytest.mark.parametrize('values',__internal_function,'expected_code',[100,200,300])
assert func(__internal_function)== expected_code
python pytest fixtures parametrized-testing
1个回答
0
投票

如果您使用两个变量作为参数,则正确的语法是:

@pytest.mark.parametrize(('values','expected_code'),(_internal_function,[100,200,300]))

如果输出是可迭代的,则可以使用函数作为参数。

© www.soinside.com 2019 - 2024. All rights reserved.