【发布时间】:2014-12-16 08:40:11
【问题描述】:
有没有办法创建一个mock对象,只mock一个Property,让其他的(Properties和Methods)链接到原来的类,而不用mock所有的方法
测试方法 -->
var test= new Mock<Test>().As<ITest>();
test.CallBase = true;
test.SetupGet(m => m.DateNow).Returns(DateTime.Now.AddDays(10));
double num= test.Object.Calc();
接口 -->
public interface ITest
{
double Calc();
DateTime DateNow { get; }
}
类 -->
public class Test : ITest
{
public DateTime DateNow
{
get
{
return DateTime.Now.Date;
}
}
public double Calc(){
DateTime d = DateTime.Now.AddDays(100);
return (DateNow - d).TotalDays;
}
总是 num = 0.0;
【问题讨论】:
-
你不能只创建一个继承自真实类的新类,然后覆盖单个属性吗?
-
@pwas : 这样做会使架构复杂化,这仅用于测试目的。