eg in t.py
def a(obj):
print obj
def b():
a(1)
a(2)
:
from t import b
with patch('t.a') as m:
b()
m.assert_called_with(1)
我:
AssertionError: Expected call: a(1)
Actual call: a(2)
最直接的方法是从mock.call_args_list
获取第一个项目,并检查它是否被1
调用:
call_args_list
这是按顺序对模拟对象进行的所有调用的列表(因此,列表的长度就是它被调用的次数)。
assert m.call_args_list[0] == call(1)
其中call
由mock
导入:from mock import call
。
同样,mock_calls
也可以代替call_args_list
。
另一个选项是使用assert_any_call()
:
m.assert_any_call(1)