抽象クラスとその中の保護されたメソッドをテストするにはどうすればよいですか?抽象クラスをテストするのではなく、抽象クラスから派生したクラスをテストすることをお勧めする方もいらっしゃると思います。事は、私はそれをしたくないです。抽象クラス自体を厳密にテストしたいと思います。サンプルクラスは次のとおりです。
public interface IF_SystemMessageHandler
{
...
}
public interface IF_SystemMessageSender
{
...
}
public abstract class Component : IF_SystemMessageSender
{
private eVtCompId mComponentId;
private eLayer mLayerId;
private IF_SystemMessageHandler mLogger;
protected Component(eVtCompId inComponentId, eLayer inLayerId, IF_SystemMessageHandler inMessageHandler)
{
mLayerId = inLayerId;
mComponentId = inComponentId;
mLogger = inMessageHandler;
}
protected void SendSystemMessage(ref eSystemMsgLevel inSystemMsgLevel, ref string inSysMsg)
{
mLogger.SendSystemMessage(...);
}
protected void SendSystemMessage(ref eSystemMsgLevel inSystemMsgLevel, ref eTextId inSysMsgID)
{
mLogger.SendSystemMessage(...);
}
public void SetMessageHandler(ref IF_SystemMessageHandler InSystemMessageHandler)
{
mLogger = InSystemMessageHandler;
}
}
私はそれのユニットテストを書いています。私ができることの1つは、ユニットテストフレームワーク(私はMoqを持っています)を利用することですが、この特定のインスタンスでそれをどのように使用するかについてはわかりません。