Python 将参数传递给mock方法

Python 将参数传递给mock方法,python,mocking,Python,Mocking,我是单元测试和模拟的新手。我希望在字典中附加一个mock方法,但我不确定如何才能实现这一点。我需要将键和值参数传递给append\u dict。用这个,我可以 SyntaxError: can't assign to function call 代码: 该函数在我要测试的文件中被调用,如下所示: client.append_dictionary(key, value) 您可以直接编写该方法并将其设置为客户机对象: def mock_client(dictionary): client

我是单元测试和模拟的新手。我希望在字典中附加一个mock方法,但我不确定如何才能实现这一点。我需要将键和值参数传递给
append\u dict
。用这个,我可以

SyntaxError: can't assign to function call
代码:

该函数在我要测试的文件中被调用,如下所示:

client.append_dictionary(key, value)

您可以直接编写该方法并将其设置为
客户机
对象:

def mock_client(dictionary):
    client = mock.MagicMock()
    client.dictionary = dictionary

    def append_dictionary(self, key, value):
        self.dictionary[key] = value

    client.append_dictionary = append_dictionary
    return client
另一方面,如果您希望测试代码中是否正确调用了
append\u dictionary
,则最好执行以下操作:

mocked_client = mock_client({})
my_code(mocked_client)
self.assertEqual(
    mocked_client.append_dictionary.call_args_list,
    [
        mock.call("key", "value"),
    ]
)
mocked_client = mock_client({})
my_code(mocked_client)
self.assertEqual(
    mocked_client.append_dictionary.call_args_list,
    [
        mock.call("key", "value"),
    ]
)