1

LTSDatacontextを持つコードを単体テストするにはどうすればよいですか。テスト中にエラーが発生します。データコンテキストがたくさんあり、接続文字列を手動で追加するのは面倒です。

4

1 に答える 1

1

さて、私がそれを行う方法は次のとおりです。

My Data Layerには、次のようなインターフェイスがあります。

public class MyDataLayer : iMyDataLayer
{
  public string GetMyData(parameters)
  {
    return myQueryValue;
  }

}

public interface iMyDataLayer
{
  public string GetMyData(parameters);
}

これで、メインコードベース(ビジネスロジック)のコンストラクターに、データレイヤーのインターフェイスに渡すパラメーターがあります。

private iMyDataLayer DataLayer;

public class MyBusinessLogic(iMyDataLayer dataLayer)
{
   DataLayer = dayaLayer
}

public string GetMyData(parameters)
{
  return DataLayer.GetMyData(parameters)
}

これで、TDDプロジェクトに「偽の」データサービスを作成できるようになりました。

public class FakeDataLayer : iMyDataLayer
{
      public string GetMyData(parameters)
      {
        return "Some Default Value or Object";
      }

}

したがって、テストを実行すると、偽のデータレイヤーオブジェクトをビジネスロジックに渡すことができます。ここから、偽のロジックが呼び出され、デフォルトの結果が返されます。

さて、ここでは実際のデータを操作することはありません。ただし、実際の有効/無効なデータを使用して偽のオブジェクトを設定する場合は、データベースに接続しなくても、この方法でビジネスロジックをテストできます。

お役に立てれば。何か説明が必要な場合はお知らせください。

于 2009-05-19T16:13:58.637 に答える