テストメソッドbase.ResolveDate()
内に、基本クラスとそのパブリックおよび仮想からのメソッドがあります。このメソッドを自分のメソッドでスタブ/シムしたいのですが、スタブまたはシムしますか? スタブまたはシム、どうすればそれを行うことができますか? 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);
}
スタブ/シムしたい基本クラスのメソッドは次のとおりです。
public virtual DateTime ResolveDate(ISeries comparisonSeries, DateTime targetDate)
{
if (this.key == comparisonSeries.Key)
return targetDate;
return DateHelper.FindNearestDate(targetDate, comparisonSeries.AsOfDates);
}