如何在第一次调用时assert_called_如果该方法在另一个方法中被调用了两次



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)

其中callmock导入:from mock import call

同样,mock_calls也可以代替call_args_list

另一个选项是使用assert_any_call():

m.assert_any_call(1)

相关内容

  • 没有找到相关文章

最新更新