私はPythonでモックを使用しており、これらの2つのアプローチのどちらが優れているのか疑問に思っていました(読んで:よりpythonic)。
方法1:模擬オブジェクトを作成して使用するだけです。コードは次のようになります。
def test_one (self):
mock = Mock()
mock.method.return_value = True
self.sut.something(mock) # This should called mock.method and checks the result.
self.assertTrue(mock.method.called)
方法2:patchを使用してモックを作成します。コードは次のようになります。
@patch("MyClass")
def test_two (self, mock):
instance = mock.return_value
instance.method.return_value = True
self.sut.something(instance) # This should called mock.method and checks the result.
self.assertTrue(instance.method.called)
どちらの方法も同じことを行います。違いがわかりません。
誰かが私を啓発できますか?
10
Mock()とパッチのどちらも試したことがない人なので、実際の違いはわかりませんが、最初のバージョンの方がわかりやすく、やりたいことを示しています。これが助けになるかどうかはわかりませんが、初心者のプログラマーが何を感じているかを伝えるのに役立つと思いました。
—
Michael Brennan
@MichaelBrennan:コメントありがとうございます。さすがに便利です。
—
サルダトリオン-