我有一个类似于foo
的函数,我正在尝试使用以下代码对其进行测试
from unittest.mock import call, patch
def foo():
x = {}
for i in range(3):
x["val"] = i
print(x)
@patch('builtins.print')
def test_foo(print_mock):
foo()
calls = calls = [call({'val': 0}), call({'val': 1}), call({'val': 2})]
print_mock.assert_has_calls(calls)
test_foo()
但它给出了以下错误
File "/usr/lib/python3.8/unittest/mock.py", line 950, in assert_has_calls
raise AssertionError(
AssertionError: Calls not found.
Expected: [call({'val': 0}), call({'val': 1}), call({'val': 2})]
Actual: [call({'val': 2}), call({'val': 2}), call({'val': 2})]
我认为问题在于它采用了调用函数的最后一个值。
希望能有一个修复或其他方法来测试foo
函数
python文档对此问题有一些建议
我认为你做到了这一点
相关问题 更多 >
编程相关推荐