我使用Visual Studio與Resharper和NUnit測試框架。當結果發生變化時如何修復很多單元測試
有時業務邏輯代碼中的一個小小的改變打破了很多單位測試。沒關係,你知道單位測試的結果是不同的,現在新的價值是有效的。有沒有辦法快速修復所有這些問題?
我使用Visual Studio與Resharper和NUnit測試框架。當結果發生變化時如何修復很多單元測試
有時業務邏輯代碼中的一個小小的改變打破了很多單位測試。沒關係,你知道單位測試的結果是不同的,現在新的價值是有效的。有沒有辦法快速修復所有這些問題?
其實沒有快速修復期望值的解決方案。如果您的更改中斷了大量集成測試,則必須手動更正所有測試。
唯一的提示是最小化期望值的複製粘貼操作之間的距離。
您可以使用各種重構工具,配有VS,使不屬於業務邏輯改變的結果(小)更改您的密碼。這樣做的例子是重命名變量和函數或將代碼移動到不同的名稱空間。 尤其是當您使用ReSharper時,有很多選項可以幫助您重構代碼。 (Resharper菜單> Refactor)。
如果您要更改應用程序的業務邏輯,那麼軟件要求必須已更改。因此,適用於該邏輯的單元測試應該失敗,並且無法自動更正此錯誤。
我談論業務邏輯的變化。我之前寫過所有這些測試,現在我們的客戶說:「讓我們把所有的價值增加10%」,這打破了我之前編寫的每一個測試。新的值現在是有效的,但這不是業務邏輯的最後一個變化,我試圖找到在這種情況下快速修復測試的方法。 – 2015-03-13 07:38:26
好消息是,你的單元測試工作得很好,然後:) 要做好準備,一般來說,如果它是一個未來可能會改變的值,那麼提取'10%增加值'是一種很好的做法。在單元測試的_Arrange_步驟中,您可以使用您在所有單元測試中使用的方法獲取該值。 – Robert 2015-03-13 07:55:17
「增加10%的價值」只是舉例:) – 2015-03-13 08:24:12
你爲什麼在這些單元測試中測試同樣的東西?他們是否是單元測試是集成測試?如果是前者,它不應該失敗這麼多。如果是這樣,你一遍又一遍地測試相同的東西。不要這樣做。 – 2015-03-13 08:29:12
Yeap,你說的對,這個測試應該叫做集成測試,從這個角度來看 – 2015-03-13 08:45:34
我覺得這比客戶管理更像是代碼問題。我的意思是如果你實施了一個自動'更新期望值'計劃,你將如何檢查它?你的測試最終應該依賴於某人在某個時候說'是的,這是我們想要的結果'我建議你在電子表格中設置calc,你可以用它來產生一大組結果值,並用客戶他們很滿意他們。然後輸出到一個csv的參數和預期的結果爲一個數據驅動的單元測試 – Ewan 2015-03-13 09:15:33