0

WCF / C#N層アプリ。

このスニペットを基本的なガイドラインとして使用して、ビジネスレイヤーにページングを実装しました。

ページング機能をテスト可能にするために、ページャーをManagerクラスのパブリックプロパティにするか、コンストラクターに挿入する必要がありますか?ユニットテスト用のリポジトリをすでに注入していますが、注入のルートをたどりすぎるのは正しいとは思いません。

または、ポケットベルを非公開にしておく方がよいでしょうか。とにかくページサイズは設定ファイルで指定されるので、テストapp.configでページサイズを指定できると思います。

4

1 に答える 1

1

私はあなたのポケットベルを次のようなものとして注入します:

  public interface IPager {
     int PageSize {get;}
  }

その場合、具体的なクラスは次のような単純なものになります。

  internal class ConfigPager : IPager {
     public int PageSize {
         get{

             int pageSize = 10;  // default value
             Int32.TryParse(ConfigurationManager.AppSettings["PageSize"], out pageSize);
             return pageSize;
         }
     }
  }

IPagerを注入することで、マネージャークラスをより完全にテストして、PageSizeのさまざまな設定を実際に尊重していることを確認できます。これは、IPagerを簡単にモックして、さまざまなサイズをテストできるためです。これにより、誰かがマネージャーでページサイズの値をハードコーディングしようとする可能性がある場合が呼び出されます。

于 2012-10-10T00:52:21.967 に答える