私は TDD に従おうとしていますが、小さな問題に遭遇しました。新しいユーザーをデータベースに挿入するテストを作成しました。Insert new user は MyService クラスで呼び出されるため、先に進み、mytest を作成しました。失敗したので、MyService クラスに CreateUser メソッドを実装し始めました。
私が遭遇している問題は、データベースの挿入を行うために MyService がリポジトリ (別のクラス) を呼び出すことです。
そこで、モック フレームワークを使用してこの Repository クラスをモックアウトしようと考えましたが、これは正しい方法でしょうか?
これは、ユーザー リポジトリのモックを実際に作成するには、テストを変更する必要があることを意味します。しかし、これはお勧めですか?最初にテストを作成して失敗させましたが、今ではリポジトリが必要であり、それをモック化する必要があることに気付きました。そのため、モック化されたオブジェクトに対応するようにテストを変更する必要があります。少し臭い?
ここでフィードバックをいただければ幸いです。
これが正しい方法である場合、実際のユーザー リポジトリはいつ作成しますか? これには独自のテストが必要ですか?
それとも、何かを嘲笑することを忘れるべきですか?ただし、MyService とユーザー リポジトリを 1 つのユニットとして一緒にテストすることになるため、これは単体テストではなく統合テストとして分類されます。
私は少し迷った。正しい方法で始めたい。