我有一个函数不会“返回”任何东西,但依赖于使用其可变性来修改字典/列表。 即:
def func(my_list):
my_list.append(4)
我想使用pytest和参数化来测试这个函数:
@pytest.mark.parametrize("input1, result", [
([1], [1, 4]),
([33, 44], [33,44, 4])
])
def test_mytest(input1, result):
assert func(input1) == result
问题是,这显然不起作用,因为我的函数实际上并没有“返回”my_list
。
是否可以使用pytest测试my_list
的值,如果是,如何测试?
答案 0 :(得分:2)
您可以将list1的值与结果after
的函数调用进行比较。
def test_mytest(input1):
func(input1)
assert input1 == result
请注意,在调用函数后将修改input1,现在可以将其与预期结果进行比较