Моя основная причина использования интерфейса - упростить модульное тестирование. Но я чувствую, что не понимаю, как использовать интерфейсы на 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, который является планом). Любые советы по этому поводу?
Извините, я не могу полностью следовать за вами: «Я должен проходить через объект IPlan в GetPlans», передайте как? Вы ничего не проходите. Можете ли вы объяснить, чего вы хотите достичь? – RvdK
@ RvdK: Извините, я забыл включить туда, где я передавал объект IPlan, он был отредактирован. –