2011-06-09 42 views
3

我知道這是一個主觀問題,因此可能會被關閉,但我認爲這值得提問。而重構生成一個圖書館。重新測試?

比方說,使用TDD構建應用程序並通過重構時,會出現一個庫。如果將代碼從主應用程序中抽出並放入單獨的程序集中,那麼即使您的主應用程序已經在測試它,您是否花時間編寫了覆蓋代碼的測試? (這只是一個重構。)

例如,在NerdDinner應用程序中,我們看到了FormsAuthentication和MembershipProvider的包裝器。這些對象在多個應用程序中非常方便,因此可以將它們從NerdDinner應用程序中提取出來並放入自己的程序集中並重用。

如果您今天從頭開始編寫NerdDinner,並且您注意到您有一個真正有用的包裝和服務的抓包,並且將它們帶入一個新的裝配體中,您是否會創建新的測試來完全覆蓋您的新裝配體 - 可能重複測試?足以說明,如果您的主應用程序在其所有測試中都運行綠色,那麼您的新程序集有效覆蓋了嗎?

雖然我對NerdDinner的示例可能過於簡單而不真正擔心,但我更多地考慮更大的API或庫。那麼,您是否編寫測試來重新覆蓋您之前測試的內容(可能是一個問題,因爲您可能會開始所有測試的傳遞),還是隻是在新程序集發展時編寫測試?

回答

2

一般來說,是的,我會爲新庫編寫測試;但它非常依賴時間限制。至少,我會經歷並重構存在的單元測試以正確引用重構的組件;只有這一點才能解決這個問題。

+0

感謝您的快速回復!這與我的想法是一致的。 – 2011-06-09 23:12:43

+0

是的..每一個公共/暴露類型都需要自己的測試。你不能依靠客戶來測試它,因爲客戶可能會隨着時間的推移而改變(刪除或添加)。 – Gishu 2011-06-10 02:57:36