是否有任何值可用于方法assert_called_once_with,它可以匹配任何东西?

时间:2017-01-27 17:04:42

标签: python mocking python-mock

我有这个功能

def my_function(param1, param2):
    ...
    my_other_function(param1, param2, <something else>)
    ...

我想测试使用my_other_functionparam1调用param2,而我并不关心其余的

我写了一个像这样的测试

@mock.patch('mymodule.my_other_function')
def test_my_other_function_is_called(my_other_function_mock):

   my_function('foo', 'bar')
   my_other_function_mock.assert_called_once_with('foo', 'bar', ?????)

我可以传递给assert_called_once_with方法(或来自MagicMock的任何&#34;姐妹&#34;方法)的任何值,以便断言通过吗?或者我必须手动获取调用列表,并检查调用该函数的每个参数?

1 个答案:

答案 0 :(得分:0)

在文档https://docs.python.org/3/library/unittest.mock.html#any中,您可以使用unittest.mock.ANY

@mock.patch('mymodule.my_other_function')
def test_my_other_function_is_called(my_other_function_mock):

   my_function('foo', 'bar')
   my_other_function_mock.assert_called_once_with('foo', 'bar', ANY)