假设以下模板方法实现:
public abstract class Abs
{
void DoYourThing()
{
log.Info("Starting");
try
{
DoYourThingInternal();
log.Info("All done");
}
catch (MyException ex)
{
log.Error("Something went wrong here!");
throw;
}
}
protected abstract void DoYourThingInternal();
}
现在,有很多关于如何测试Abs
类的信息,并确保它DoYourThingInternal
被调用。
但是,假设我想测试我的Conc
课程:
public class Conc : Abs
{
protected override void DoYourThingInternal()
{
// Lots of awesome stuff here!
}
}
我不想这样做conc.DoYourThing()
,因为这将调用已经单独测试过的父方法。
我只想测试覆盖方法。
有任何想法吗?