更新
我想根据它的方法使用来确定是否应该对工厂进行单元测试,因为如果我想测试它,我需要使用 IoC 容器注册类型,在我的案例中使用 Unity。如果我模拟工厂,它实际上并没有测试工厂方法。
下面是一个工厂类,它根据其参数创建类型的实例。
public class CarFactory
{
public ICar CreateCar(string CarType)
{
ICar Car;
switch (CarType)
{
case RepositoryType.Car1:
Car = Ioc.ContainerWrapper.Resolve<Car1>();
break;
case RepositoryType.Car2:
Car = Ioc.ContainerWrapper.Resolve<Car2>();
break;
default:
Car = Ioc.ContainerWrapper.Resolve<Car3>();
break;
}
return Car;
}
}
class Car1
{
private readonly IRepository1 _IRepository1;
public Car1(IRepository1 repository1)
{
_IRepository1 = repository1;
}
}