2013-04-15 37 views
0

我已經用UnitTests覆蓋了我的類的內部實現。現在測試我的公共接口還是有用的(這是一個函數,而不是連接到內部方法的調用)?UnitTesting當內部已經被覆蓋時,一個類的公共接口?

這種感覺就像我會補充說,測試同樣的事情(一個或多個)輔助檢查。

或者正在測試公共接口更多的集成測試(即使我已經存根數據訪問,所有處理都在內存中),以這種方式測試所有的UnitTested方法是否可以很好地協同工作?

例子:

internal bool internalCheck() { 
    // complex logic that is being unit tested 
} 

internal void internalDoSomething() { 
    // do stuff. is being unit tested 
} 

public void DoIt() { 
    if (internalCheck()) { 
     internalDoSomething(); 
    } 
} 

現在,如果我要補充測試,測試DoIt,我將基本結束了重新測試爲internalCheck所有的邏輯流程,並斷言,當它返回true,則internalDoSomething被調用。

嗯我想我已經想通了: 我需要嘲笑類本身,並檢查正在進行的調用,幾乎忽略了實際的輸入/輸出。爲了測試公共方法,而不是重新測試internalCheck,我使用一個模擬框架讓internalCheck返回我想要測試的流,然後驗證是否調用了正確的方法。

回答

0

這取決於你如何定義你的單位。通常這是班級,所以這仍然是一個單元測試。

即使你已經測試的內部方法,它仍然是重要測試的公共接口,以確保內部方法一起工作。

相關問題