4

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

1 に答える 1

9

最も簡単な方法は、から最初の項目を取得し、それが次の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)
于 2014-05-07T02:55:33.363 に答える