インターフェイスを使用する主な理由は、単体テストを簡単にすることです。しかし、インターフェイスの使い方を 100% 理解していないように感じます。
これが私がやろうとしていることの簡略化されたバージョンです:
public interface IPlan
{
List<Plan> GetPlans(IPlan plan);
List<Plan> GetAllPlans();
List<string> DoSomethingElse();
}
public class Plan : IPlan
{
List<Plan> GetPlans(IPlan plan)
{
//
List<Plan> planList = plan.GetAllPlans();
//
// Do stuff with planList...
//
}
単体テストをセットアップするには、Plan クラスをモックし、GetAllPlans からプランのセット リストを返せるようにする必要があります。適切にモックできるようにするには、ここでインターフェイスを使用する必要があることがわかります。IPlan オブジェクトを GetPlans に渡し、その IPlan オブジェクトを使用して GetAllPlans を呼び出す必要があることも理解しています (または少なくとも私は考えています)。しかし、この設定では何かが正しくないようです。
これを間違って設定していますか?それが含まれているクラスと同じタイプの IPlan を渡しているのは奇妙に思えます (プランである IPlan を渡します)。これに関するアドバイスはありますか?