我目前正試圖弄清楚如何編寫適當的單元測試。還有很多東西需要學習。我想詢問的一種情況如下:調用不受測試的方法?
假設我正在測試類X
的方法A
。現在我經常發現有必要調用不屬於當前測試的方法B
(的X
)。大多數情況下,這會發生在建立測試夾具(即改變X
的狀態)或斷言A
(即關於X
的狀態斷言)。在這兩種情況下,嘲笑都是徒勞的。但是,如果我對B
進行了任何(錯誤)更改,則即使A
沒有任何更改,測試A
也可能會失敗。
現在,我不確定如何解釋這個結果。這是否意味着我的測試過程或設計是有缺陷的,還是不是問題,因爲我畢竟測試了單元「X
」(該課程)?
如果您在'B'中更改了代碼,並且'A'的測試失敗了,它仍然會告訴您您破壞了某些內容**。它還會告訴你哪個測試失敗。既然你知道你改變了什麼,除非你不想在開發過程中每次運行完整的測試套件,否則哪個測試可以幫助你識別它並不重要。我相信嘲笑只有在你有像數據庫或web服務這樣的外部依賴時纔有意義。 – simbabque
對於我來說,這個問題太抽象了,我有一個強烈的觀點,但對我來說,底線是如果測試可以幫助您找到或防止代碼中的錯誤而不會造成維護滋擾,那麼這是一個很好的測試。 –