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