關於我關於測試抽象類的其他線程(可以找到here),我現在的問題是訪問抽象類的私有變量。這與使用Private Accessor
有關,但正如我在另一個線程中所陳述的那樣,我無法在單元測試的相同文件內創建私有訪問器。如何訪問抽象類的私有成員
下面是我在談論私有變量:
public abstract class Component {
private eVtCompId mComponentId; //enum
private eLayer mLayerId; //enum
private IF_SystemMessageHandler mLogger; //interface
我需要知道如何訪問這些,因爲我創建一個單元測試,包括讓這些特殊變量中的值。
您不應該通過單元測試來測試對象的狀態。單元測試的唯一可接受的交互方式是調用方法。 – zerkms 2013-03-18 02:38:55
類的內部實現不應該是單元測試的主題。從理論上講,這個班級「工作」的方式可以改變,不應該導致單元測試失敗,只有班級的公共消費結果/屬性應該保持一致。 – Sepster 2013-03-18 02:40:02
現在你打算違反面向對象的原則。如果您確實想訪問這些變量,請創建一個受保護的函數或一個返回這些變量值並在派生類中訪問它的屬性。 – PSL 2013-03-18 02:45:43