我是 Python 新手,如果这是基本的,请原谅我。我有一个正在测试的方法,在该方法中,我实例化了一个对象并在其上调用方法,并希望测试这些方法是否被正确调用(值得指出的是,此代码是预先存在的,我只是添加到它,用没有现有的测试)。
被测方法
def dispatch_events(event):
dispatcher = Dispatcher()
dispatcher.register("TopicOne")
dispatcher.push(event)
预期测试
# Some patch here
def test_dispatch_events(self, mock_dispatcher):
# Given
event = { "some_prop": "some_value" }
# When
Class.dispatch_events(event)
# Then
mock_dispatcher.register.assert_called_once_with("TopicOne")
mock_dispatcher.push.assert_called_once_with(event)
来自 .NET 背景,我的直接想法是作为参数Dispatcher
传入。dispatch_events
然后大概,我可以传递一个MagicMock
版本。或者我认为您可能能够修补 上的__init__
方法Dispatcher
并返回MagicMock
. 在我继续之前,我想知道 a) 是否有可能和 b) 测试它的最佳实践是什么(完全接受编写更好的方法可能是最佳实践)。