我已經用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
返回我想要測試的流,然後驗證是否調用了正確的方法。