0
我正在爲抽象類創建單元測試代碼。這裏是該類的片段:無法訪問抽象類中受保護的構造函數
public abstract class Component
{
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;
}
我在構造函數的參數中有兩個枚舉後跟一個接口。
這裏是我的單元測試代碼片段:
Component_Accessor target = new Component_Accessor(eVtCompId.MasterSWCommDevice, eLayer.Foundation, new MySysMsgHandler());
我不斷收到錯誤消息「Component_Accessor不包含一個構造函數‘3’的論點」。我似乎無法理解爲什麼會發生這種情況。當我刪除abstract
關鍵字時,單元測試工作正常。
我不明白爲什麼單元測試似乎無法「看到」構造函數,如果該類設置爲abstract
。任何人都可以解釋爲什麼會發生?提前致謝。
'Component'和'Component_Accessor'是定義不同的類型。他們如何互相引用? – horgh