0

asp.net mvc3 を使用して Web サイトを構築しています。次のレイヤーがあります。

コントローラ -> サービス -> リポジトリ

プロジェクトを開始したばかりで、何もありません。最初にインターフェースから始めました。

public interface IRepository<T>
{
    T Get(int id);
    void Save(T item);
    void Delete(int id);
}


public interface IUserRepository : IRepository<User>
{
    User GetUserByLogin(UserLoginViewModel userLogin);
}

この時点で、単体テストを書き始めるか、インターフェイスを実装するか、具体的なリポジトリ メソッドを書き始めてから、自分が書いたメソッドに基づいて単体テストを行う必要があります。

私はとても混乱しています。どのステップを最初に進めるべきかわかりません。

4

1 に答える 1

1

あなたの別の質問で指摘したように、理想的には、テストを外部で記述し、外部オブジェクトに必要な依存関係を定義し、それらをモックします。これにより、nice API を使用して依存関係の完全なインターフェイスを作成できます。

したがって、この例ではIUserRepository、ユーザーのコントローラーのテストを作成しながらインターフェイスを作成します。次に、このインターフェースを実装するクラスを作成し、リポジトリ実装のテストを書き始めます。

別のオプション (私はもっと好きです) - システムを垂直方向のスライスで反復的に実装します。

  1. コントローラーのテストを作成します
  2. コントローラーにリポジトリー機能が必要であると判断した場合 (例: Save)
  3. その機能をリポジトリインターフェースに追加します
  4. コントローラーのテスト用にこのインターフェイスをモックし、合格させます
  5. Saveリポジトリの実装方法のテストを書いてパスさせる
  6. この時点で、すべてのスライスがテストされ、機能しています。ステップ 1 に戻ります。

通常、リポジトリには多くのロジックがないため、リポジトリの単体テストには時間がかかりますが、少しメリットがあります。私はむしろ、すべてのシステムを実行し、機能が実装されていることを証明する受け​​入れテストを使用したいと考えています。

于 2012-07-13T07:08:12.453 に答える