我使用接口的主要原因是使单元测试变得容易。但我觉得我不理解如何 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)。对此有何建议?