如何在没有任何Mock框架和C#中没有接口的情况下模拟对象?

时间:2013-10-03 02:26:53

标签: .net mocking

我在Main class中有以下代码

public class Price
{
public virtual double WebServiceCall(string symbol)
    {
        // Actual Code to call Web service
    }
}

我在模拟类中重写该方法

 public class PriceMock : Price
    {
        public override double WebServiceCall(string symbol)
        {
            return 876.39;
        }
    }

如何使用Nunit Framework对主类价格进行单元测试?我有兴趣测试应该调用模拟对象方法

的Price类方法

1 个答案:

答案 0 :(得分:0)

我不确定你为什么不想使用接口,但是为了回答你的问题,你应该能够通过使用任何依赖注入框架来实现这一点,并在单元测试的情况下注册Mock类型。

我使用unity,所以在UnitTest初始化中我会在test initialize方法中注册类似下面的内容。

var unityContainer = new UnityContainerFactory().Create();
UnityConfiguration.RegisterWithContainer(unityContainer);


unityContainer.RegisterType<Price, PriceMock>();