如何測試它們內部的抽象類和受保護方法?我知道你們中的一些人會建議我不應該測試抽象類,而是測試從它派生出來的類。事情是,我不想那樣做。我想嚴格測試抽象類本身。這裏是樣本類:單元測試抽象類和它們內部的受保護方法
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;
}
}
我正在爲它寫一個單元測試。我知道我能做的其中一件事是利用單元測試框架(我有Moq),但我不知道如何在這個特定的實例中使用它。
代碼的榮譽。這個答案比@ulises更好 –