所以,我看過一個關於TDD的視頻,主持人說,你應該只測試班級的部分內容,給外部世界什麼東西。他提到這很好,因爲這種方法確保班級保持「契約」,所以它交付了它的責任,但是你可以自由地重構它背後的邏輯。單元測試 - 定理
我在這裏有點困惑傢伙,因爲我知道單元測試不應該依賴於外部世界。好吧,我明白這不是依賴項,但爲什麼不測試內部邏輯? 有什麼想法?請隨時添加爲答案!
所以,我看過一個關於TDD的視頻,主持人說,你應該只測試班級的部分內容,給外部世界什麼東西。他提到這很好,因爲這種方法確保班級保持「契約」,所以它交付了它的責任,但是你可以自由地重構它背後的邏輯。單元測試 - 定理
我在這裏有點困惑傢伙,因爲我知道單元測試不應該依賴於外部世界。好吧,我明白這不是依賴項,但爲什麼不測試內部邏輯? 有什麼想法?請隨時添加爲答案!
沒錯......你考什麼是輸出到「外面的世界」,而不是從外部世界輸入。
的想法是,你測試你的代碼將輸出正確的結果內部的步驟越多,你的單元測試時,無意實施改變甚至雖然最後的結果是完全正確的突破。你只希望單元測試在最終結果錯誤時抱怨。
所以基本上任何內部邏輯都必須通過一些可以從課堂外訪問的方法暴露出來。這樣你就可以測試你的內部邏輯,但是你不能直接訪問它。
我認爲你要找的短語是[*黑盒測試*](https://en.wikipedia.org/wiki/Black-box_testing)。 –
爲什麼你應該測試內部邏輯?如果用戶期望f(a)返回b,爲什麼f(a)完成這項工作?內部功能默認是自動測試的。 –