我的base.ResolveDate()
测试方法中有一个来自基类及其公共和虚拟的方法。我想用我自己的方法来存根/填充这个方法,那么我应该存根还是填充?Stub 或 Shim,我该怎么做呢?根据我对 MS Fakes 的经验,它似乎是一个存根,因为存根只能影响可覆盖的方法。- ALM 2012
下面是测试方法:
public override DateTime ResolveDate(ISeries comparisonSeries, DateTime targetDate)
{
if (comparisonSeries == null)
{
throw new ArgumentNullException("comparisonSeries");
}
switch (comparisonSeries.Key)
{
case SeriesKey.SomeKey1:
case SeriesKey.SomeKey2:
case SeriesKey.SomeKey3:
case SeriesKey.SomeKey4:
case SeriesKey.SomeKey5:
return DateHelper.PreviousOrCurrentQuarterEnd(targetDate);
}
return base.ResolveDate(comparisonSeries, targetDate);
}
这是我想要 Stub/Shim 的基类的方法?
public virtual DateTime ResolveDate(ISeries comparisonSeries, DateTime targetDate)
{
if (this.key == comparisonSeries.Key)
return targetDate;
return DateHelper.FindNearestDate(targetDate, comparisonSeries.AsOfDates);
}