我目前正在調查我們應該如何在即將推出的項目中執行測試。爲了在開發過程早期發現錯誤,開發人員將在實際代碼(TDDish)之前編寫單元測試。單元測試將集中在單元上(這種情況下的一種方法),因此依賴性會被嘲弄等等。從單元測試到集成測試的有效轉換
現在,我還想在與其他單元交互時測試這些單元因爲單元測試已經寫好了,所以我認爲應該有一個有效的最佳做法來做到這一點。我的想法是,單元測試將被重用,但被嘲弄的對象將被刪除並替換爲真實的對象。我現在不同的想法是:
- 在每個測試類中使用全局標誌來決定是否應該使用模擬對象。此方法將需要幾個
if
語句 - 使用工廠類創建「instanceWithMocks」或「instanceWithoutMocks」。這種方法對於新開發人員來說可能會很麻煩並且需要一些額外的類
- 將集成測試與單元測試分開在不同的類中。然而,這將需要大量的冗餘代碼和維護測試用例將是工作的兩倍
我看到這些方法的所有方法都有優點和缺點。哪些是首選的,爲什麼?是否有更好的方式從單元測試有效地轉換到集成測試?或者這通常以其他方式完成?