你如何测试一个可变的隐含结果?

时间:2016-01-04 18:13:46

标签: python python-3.x return pytest mutable

我有一个函数不会“返回”任何东西,但依赖于使用其可变性来修改字典/列表。 即:

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的值,如果是,如何测试?

1 个答案:

答案 0 :(得分:2)

您可以将list1的值与结果after的函数调用进行比较。

def test_mytest(input1):
    func(input1)
    assert input1 == result

请注意,在调用函数后将修改input1,现在可以将其与预期结果进行比较