例えば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)