У меня есть метод, который мне нужно проверить, и внутри метода есть вызов того же метода базового класса. Чтобы написать модульный тест, нужно ли издеваться над этим методом base.ResolveDate (compareSeries, targetDate)? Как мне это сделать? Я не думаю, что извлечение интерфейса здесь будет работать!Как отключить/выкрой вызов базового класса внутри моего метода
public override DateTime ResolveDate(ISeries comparisonSeries, DateTime targetDate)
{
if (comparisonSeries == null)
{
throw new ArgumentNullException("comparisonSeries");
}
switch (comparisonSeries.Key)
{
case SeriesKey.R1:
case SeriesKey.R2:
case SeriesKey.R3:
case SeriesKey.R4:
case SeriesKey.R5:
return DateHelper.PreviousOrCurrentQuarterEnd(targetDate);
}
return base.ResolveDate(comparisonSeries, targetDate);
}
Почему вы хотите сделать это? Почему не единичный тест вместе с базовым классом? По мне, даже если вы проверите его с базовым классом, он все равно будет единичным тестом. –
Я думаю, для этого вам придется использовать TypeMock или Microsoft Fakes. Другой вариант - использовать композицию вместо наследования (с общим интерфейсом), а затем «base.ResolveDate» вместо этого будет зависимостью в классе, который вы пытаетесь протестировать. – Matthew
Что касается модульного тестирования, должен ли я перейти в мою базу.ResolveDate() для выполнения модульного теста на дочернем классе ResolveDate()? Разве я не хочу просто проверить, что внутри дочернего класса ResolveDate(), не переходя в какие-либо другие классы? – user1186050