Martin Fowler のMocks Aren't Stubsを読んだ後、私は「モック主義者」のやり方で TDD を実践してきたことに気付きました。
しかし、モッキングをやりすぎることができるかどうかは、モッキングTDDでも疑問に思っています。
Python スタイルの疑似コードで更新された例を次に示します。
def sync_path(self):
if self.confirm_or_create_connection():
self.sync(self.dirpath)
confirm_or_create_connection() メソッドは、サーバーへの接続を作成します。
これに似たメソッドを 2 つのテストでテストしましたが、どちらも confirm_or_create_connection() と sync() をモックしています (両方とも同じクラスのメソッドですが)。1 つのテストでは、モック confirm_or_create_connection() は True を返し、テストは sync() が呼び出されたことを確認します。別のテストでは、モック confirm_or_create_connection() は False を返し、テストは sync() が呼び出されなかったことを確認します。
これは合理的ですか?または、confirm_or_create_connection() と sync() が呼び出すオブジェクトをモックする必要がありますか? (すでにこれを行っているこれらの方法の両方の他のテストがあります。)
代わりに「古典的な」TDD を実践すべきだと説明して、質問に答えないでください。これは、別の質問に対する答えです。モックストまたは従来の TDD を実践する必要がありますか?