你如何测试一个可变的、隐含的结果?
How do you test a mutable, implied result?
我有一个函数不 "return" 任何东西,而是依赖于使用其可变性来改变 dictionary/list。
即:
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
问题是,这显然行不通,因为我的函数实际上 "return" my_list
。
是否可以使用 pytest 测试 my_list
的值,如果可以,如何测试?
您可以将 list1 的值与调用函数的结果 after
进行比较。
def test_mytest(input1):
func(input1)
assert input1 == result
请注意,input1 将在函数调用后修改,现在可以与预期结果进行比较
我有一个函数不 "return" 任何东西,而是依赖于使用其可变性来改变 dictionary/list。 即:
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
问题是,这显然行不通,因为我的函数实际上 "return" my_list
。
是否可以使用 pytest 测试 my_list
的值,如果可以,如何测试?
您可以将 list1 的值与调用函数的结果 after
进行比较。
def test_mytest(input1):
func(input1)
assert input1 == result
请注意,input1 将在函数调用后修改,现在可以与预期结果进行比较