私は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)これをテストするためのベストプラクティスは何か(より良い方法を書くことがベストプラクティスである可能性があることを完全に受け入れる)を知りたかった.