次のテンプレートメソッドの実装を想定します。
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()
これは、すでに個別にテストされている親メソッドを呼び出すため、 実行したくありません。
オーバーライドメソッドのみをテストしたいと思います。
何か案は?